*SUPPORT*
IN: kiki lug blicket dax OUT: BLUE PURPLE YELLOW
IN: blicket lug wif gazzer OUT: PURPLE RED RED RED RED
IN: dax zup wif OUT: YELLOW RED YELLOW RED
IN: kiki lug blicket wif zup kiki OUT: BLUE PURPLE RED BLUE RED BLUE
IN: kiki dax OUT: BLUE YELLOW
IN: blicket lug wif OUT: PURPLE RED
IN: blicket OUT: PURPLE
IN: wif kiki kiki lug dax blicket OUT: RED BLUE BLUE YELLOW PURPLE
IN: wif zup dax OUT: RED YELLOW RED YELLOW
IN: dax wif lug kiki lug blicket OUT: YELLOW RED BLUE PURPLE
IN: dax lug dax lug kiki zup dax OUT: YELLOW YELLOW BLUE YELLOW BLUE YELLOW
IN: blicket dax zup wif OUT: PURPLE YELLOW RED YELLOW RED
IN: wif zup wif OUT: RED RED RED RED
IN: kiki wif OUT: BLUE RED

*QUERY*
IN: wif OUT: RED
IN: dax dax OUT: YELLOW YELLOW
IN: kiki OUT: BLUE
IN: blicket dax wif kiki dax zup wif OUT: PURPLE YELLOW RED BLUE YELLOW RED YELLOW RED
IN: wif blicket OUT: RED PURPLE
IN: dax OUT: YELLOW
IN: blicket zup kiki OUT: PURPLE BLUE PURPLE BLUE
IN: blicket zup blicket OUT: PURPLE PURPLE PURPLE PURPLE
IN: dax zup kiki OUT: YELLOW BLUE YELLOW BLUE
IN: wif lug wif dax zup dax OUT: RED RED YELLOW YELLOW YELLOW YELLOW

*GRAMMAR*
kiki -> BLUE 
 wif -> RED 
 dax -> YELLOW 
 blicket -> PURPLE 
 u1 lug x1 -> [u1] [x1] 
 u1 zup u2 -> [u1] [u2] [u1] [u2] 
 x1 gazzer -> [x1] [x1] [x1] [x1] 
 u1 x1 -> [u1] [x1] 
 