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

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

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