#include <stdio.h>
#include <string.h>

#define SQ(X) ((X)*(X))

typedef struct{
    char name[8];
    int r,g,b;
} Color;

double getDist2(Color col1, Color col2);
void GetCol(Color *cp, char *st);
int getHex(char c);

int main(){
    Color col[8];
    Color inCol;
    double dist2;
    int nearest, nearestId;
    char buf[16];
    
    // init color table
    col[0].r=0x00; col[0].g=0x00; col[0].b=0x00; strcpy(col[0].name, "black");
    col[1].r=0x00; col[1].g=0x00; col[1].b=0xff; strcpy(col[1].name, "blue");
    col[2].r=0x00; col[2].g=0xff; col[2].b=0x00; strcpy(col[2].name, "lime");
    col[3].r=0x00; col[3].g=0xff; col[3].b=0xff; strcpy(col[3].name, "aqua");
    col[4].r=0xff; col[4].g=0x00; col[4].b=0x00; strcpy(col[4].name, "red");
    col[5].r=0xff; col[5].g=0x00; col[5].b=0xff; strcpy(col[5].name, "fuchsia");
    col[6].r=0xff; col[6].g=0xff; col[6].b=0x00; strcpy(col[6].name, "yellow");
    col[7].r=0xff; col[7].g=0xff; col[7].b=0xff; strcpy(col[7].name, "white");
    
    while (scanf("%s",buf), buf[0]!='0'){
        GetCol(&inCol, buf);
        nearest = 65536*4;
        for (int i=0; i<8; i++){
            dist2 = getDist2(col[i], inCol);
            if (dist2 < nearest) nearest=dist2, nearestId=i;
        }
        printf("%s\n", col[nearestId].name);
    }    
    return 0;
}

double getDist2(Color col1, Color col2){
    return SQ(col1.r-col2.r)+SQ(col1.g-col2.g)+SQ(col1.b-col2.b);
}

void GetCol(Color *cp, char *st){
    cp->r = getHex(st[1])*0x10 + getHex(st[2]);
    cp->g = getHex(st[3])*0x10 + getHex(st[4]);
    cp->b = getHex(st[5])*0x10 + getHex(st[6]);
}

int getHex(char c){
    if ('0'<=c && c<='9') return c-'0';
    else return c-'a'+10;
}