import java.io.*;
import java.util.*;

class RGBTableParseTest {
    static public void main(String args[]) {
	try {
	    InputStream is = new FileInputStream(args[0]);
	    InputStreamReader rdr = new InputStreamReader(is);
	    RGBTableParser parser = new RGBTableParser(rdr);
	    parser.parse();
	} catch (IOException e) {
	}
    }
}

class NameRGBPair {
    String name;
    byte r, g, b;

    NameRGBPair(String name, byte r, byte g, byte b) {
	this.name = name;
	this.r = r;
	this.g = g;
	this.b = b;
    }
  
  public String toString() {
    String rstr = Integer.toHexString((int)r);
    if (rstr.length() == 8)
      rstr = rstr.substring(5,7);
    else if (rstr.length() == 1)
      rstr = "0" + rstr;
    String gstr = Integer.toHexString((int)g);
    if (gstr.length() == 8)
      gstr = gstr.substring(5,7);
    else if (gstr.length() == 1)
      gstr = "0" + gstr;
    String bstr = Integer.toHexString((int)b);
    if (bstr.length() == 8)
      bstr = bstr.substring(5,7);
    else if (bstr.length() == 1)
      bstr = "0" + bstr;

    return name + " (r: " + rstr
	+ " g: " + gstr
	+ " b: " + bstr + ")";
  }
    
}

class RGBTableParser {
    Hashtable rgbtable;
    StreamTokenizer tokens;

    RGBTableParser(Reader rdr) {
	tokens = new StreamTokenizer(rdr);
	rgbtable = new Hashtable();
    }

    void parse() {
	try {
	    int type;
	    int num_idx = 0;
	    int num[] = new int[3];
	    boolean in_name = false;
	    String key = null;
	    NameRGBPair rgb = null;
	    while((type = tokens.nextToken()) != StreamTokenizer.TT_EOF) {
		if (type == StreamTokenizer.TT_NUMBER) {
		    //System.out.println("token: " + tokens.nval);
		    if (num_idx == 0 && key != null) {
			rgb = new NameRGBPair(key, (byte)num[0], (byte)num[1],
					      (byte)num[2]);
			rgbtable.put(key, rgb);
			in_name = false;
			key = null;
		    }
		    num[num_idx] = (int)tokens.nval;
		    num_idx++;
		}
		else if (type == StreamTokenizer.TT_WORD) {
		    //System.out.println(num_idx);
		    //System.out.println("token: " + tokens.sval);
		    if (!in_name && num_idx < 2) error ("less number");
		    if (key != null) {
			key = key + ' ' + tokens.sval;
		    } else {
			key = tokens.sval;
		    }
		    num_idx = 0;
		    in_name = true;
		}
	    }
	    if (key != null && rgb != null)
		rgbtable.put(key, rgb);
	} catch (IOException e) {
	}

	/*Enumeration e = rgbtable.elements();
	while(e.hasMoreElements()) {
	    NameRGBPair rgb = (NameRGBPair)e.nextElement();
	    System.out.println(rgb);
	}*/
    }

    void error (String msg) {
	System.out.println(msg);
	System.exit(1);
    }
}
