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

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

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