#define _USE_MATH_DEFINES
#include <iostream>
#include <complex>
#include <algorithm>
#include <vector>
#include <stack>
#include <string>
#include <queue>
#include <cmath>
#include <math.h>
#include <numeric>
#include <list>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <climits>
#include <set>
#include <memory.h>
#include <memory>
#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <cassert>
#include <map>
#include <cassert>
#include <time.h>
#include <ctime>

using namespace std;

typedef complex<double> xy_t;
typedef pair<xy_t, xy_t> line;
typedef long long ll;
typedef pair<int, int> P;
typedef pair<int , P> PP;
typedef pair<int, string> Ps;
typedef vector<int> vec;
typedef vector<vec> mat;
const int INF = 1 << 30;
const double EPS = 1e-9;
const double PI = 3.1415926535897932384626433832795;
const int CLK = CLOCKS_PER_SEC;

#define rep(i, n) for(int i = 0; i < n; i++)
#define rep2(i, m, n) for(int i = m; i < n; i++)

string cs[] = {
	"black", "blue", "lime", "aqua",
	"red", "fuchsia", "yellow", "white"
};

int rs[] = {
	0, 0, 0, 0, 255, 255, 255, 255
};

int gs[] = {
	0, 0, 255, 255, 0, 0, 255, 255
};

int bs[] = {
	0, 255, 0, 255, 0, 255, 0, 255,
};

int get_num(char c1, char c2){
	int res = 0;
	if(isdigit(c1)) res += c1 - '0';
	else res += c1 - 'a' + 10;
	res *= 16;
	if(isdigit(c2)) res += c2 - '0';
	else res += c2 - 'a' + 10;
	return res;
}

int pow(int n){ return n * n;}

int get_d(int id, int r, int g, int b){
	return pow(rs[id] - r) + pow(gs[id] - g) + pow(bs[id] - b);
}

int main(){
	string s;
	int r, g, b;
	while(cin >> s && s != "0"){
		int best;
		int p = INF;
		r = get_num(s[1], s[2]);
		g = get_num(s[3], s[4]);
		b = get_num(s[5], s[6]);
		rep(i, 8){
			int c = get_d(i, r, g, b);
			if(c < p){
				best = i;
				p = c;
			}
		}
		cout << cs[best] << endl;
	}
	return 0;
}