#include<bits/stdc++.h>
using namespace std;
vector<string> ans(1000000);
int dp[100][100][100];
int lowest_cost_helper(vector<int> blueCosts, vector<int> greenCosts, vector<int> redCosts, int index, int total, int pos) {
if(index == blueCosts.size())
return pos + abs(total);
if(dp[index][total][pos] != -1)
return dp[index][total][pos];
int r1, r2, r3;
if(blueCosts[index]>0 and index>0 and ans[index]!="b")
r1 = lowest_cost_helper(blueCosts, greenCosts, redCosts, index+1, total+blueCosts[index], pos+blueCosts[index]);
else
r1 = lowest_cost_helper(blueCosts, greenCosts, redCosts, index+1, total+blueCosts[index], pos);
if(greenCosts[index]>0 and index>0 and ans[index]!="g")
r2 = lowest_cost_helper(blueCosts, greenCosts, redCosts, index+1, total+greenCosts[index], pos+greenCosts[index]);
else
r2 = lowest_cost_helper(blueCosts, greenCosts, redCosts, index+1, total+greenCosts[index], pos);
if(redCosts[index]>0 and index>0 and ans[index]!="r")
r3 = lowest_cost_helper(blueCosts, greenCosts, redCosts, index+1, total+redCosts[index], pos+redCosts[index]);
else
r3 = lowest_cost_helper(blueCosts, greenCosts, redCosts, index+1, total+redCosts[index], pos);
if(r1<r2 and r1<r3)
ans[index]="b";
else if(r2<r3 and r2<r1)
ans[index]="g";
else
ans[index]="r";
return dp[index][total][pos] = min(r1, min(r2, r3));
}
vector<string> lowest_cost(vector<int> blueCosts, vector<int> greenCosts, vector<int> redCosts) {
memset(dp, -1, sizeof(dp));
int sum = lowest_cost_helper(blueCosts, greenCosts, redCosts, 0, 0, 0);
vector<string> color;
int i=0;
while(i<blueCosts.size()) {
color.push_back(ans[i++]);
}
return color;
}
int main() {
int n;cin>>n;
vector<int> blueCosts(n), redCosts(n), greenCosts(n);
for(int i=0;i<n;i++) cin>>blueCosts[i];
for(int i=0;i<n;i++) cin>>greenCosts[i];
for(int i=0;i<n;i++) cin>>redCosts[i];
vector<string> res = lowest_cost(blueCosts, greenCosts, redCosts);
for(auto x : res) cout<<x<<" ";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvcjxzdHJpbmc+IGFucygxMDAwMDAwKTsKaW50IGRwWzEwMF1bMTAwXVsxMDBdOwoKaW50IGxvd2VzdF9jb3N0X2hlbHBlcih2ZWN0b3I8aW50PiBibHVlQ29zdHMsIHZlY3RvcjxpbnQ+IGdyZWVuQ29zdHMsIHZlY3RvcjxpbnQ+IHJlZENvc3RzLCBpbnQgaW5kZXgsIGludCB0b3RhbCwgaW50IHBvcykgewoJaWYoaW5kZXggPT0gYmx1ZUNvc3RzLnNpemUoKSkKCQlyZXR1cm4gcG9zICsgYWJzKHRvdGFsKTsKCWlmKGRwW2luZGV4XVt0b3RhbF1bcG9zXSAhPSAtMSkKCQlyZXR1cm4gZHBbaW5kZXhdW3RvdGFsXVtwb3NdOwoJaW50IHIxLCByMiwgcjM7CglpZihibHVlQ29zdHNbaW5kZXhdPjAgYW5kIGluZGV4PjAgYW5kIGFuc1tpbmRleF0hPSJiIikKCQlyMSA9IGxvd2VzdF9jb3N0X2hlbHBlcihibHVlQ29zdHMsIGdyZWVuQ29zdHMsIHJlZENvc3RzLCBpbmRleCsxLCB0b3RhbCtibHVlQ29zdHNbaW5kZXhdLCBwb3MrYmx1ZUNvc3RzW2luZGV4XSk7CgllbHNlCgkJcjEgPSBsb3dlc3RfY29zdF9oZWxwZXIoYmx1ZUNvc3RzLCBncmVlbkNvc3RzLCByZWRDb3N0cywgaW5kZXgrMSwgdG90YWwrYmx1ZUNvc3RzW2luZGV4XSwgcG9zKTsKCWlmKGdyZWVuQ29zdHNbaW5kZXhdPjAgYW5kIGluZGV4PjAgYW5kIGFuc1tpbmRleF0hPSJnIikKCQlyMiA9IGxvd2VzdF9jb3N0X2hlbHBlcihibHVlQ29zdHMsIGdyZWVuQ29zdHMsIHJlZENvc3RzLCBpbmRleCsxLCB0b3RhbCtncmVlbkNvc3RzW2luZGV4XSwgcG9zK2dyZWVuQ29zdHNbaW5kZXhdKTsKCWVsc2UKCQlyMiA9IGxvd2VzdF9jb3N0X2hlbHBlcihibHVlQ29zdHMsIGdyZWVuQ29zdHMsIHJlZENvc3RzLCBpbmRleCsxLCB0b3RhbCtncmVlbkNvc3RzW2luZGV4XSwgcG9zKTsKCWlmKHJlZENvc3RzW2luZGV4XT4wIGFuZCBpbmRleD4wIGFuZCBhbnNbaW5kZXhdIT0iciIpCgkJcjMgPSBsb3dlc3RfY29zdF9oZWxwZXIoYmx1ZUNvc3RzLCBncmVlbkNvc3RzLCByZWRDb3N0cywgaW5kZXgrMSwgdG90YWwrcmVkQ29zdHNbaW5kZXhdLCBwb3MrcmVkQ29zdHNbaW5kZXhdKTsKCWVsc2UKCQlyMyA9IGxvd2VzdF9jb3N0X2hlbHBlcihibHVlQ29zdHMsIGdyZWVuQ29zdHMsIHJlZENvc3RzLCBpbmRleCsxLCB0b3RhbCtyZWRDb3N0c1tpbmRleF0sIHBvcyk7CglpZihyMTxyMiBhbmQgcjE8cjMpCgkJYW5zW2luZGV4XT0iYiI7CgllbHNlIGlmKHIyPHIzIGFuZCByMjxyMSkKCQlhbnNbaW5kZXhdPSJnIjsKCWVsc2UKCQlhbnNbaW5kZXhdPSJyIjsKCXJldHVybiBkcFtpbmRleF1bdG90YWxdW3Bvc10gPSBtaW4ocjEsIG1pbihyMiwgcjMpKTsKfQoKdmVjdG9yPHN0cmluZz4gbG93ZXN0X2Nvc3QodmVjdG9yPGludD4gYmx1ZUNvc3RzLCB2ZWN0b3I8aW50PiBncmVlbkNvc3RzLCB2ZWN0b3I8aW50PiByZWRDb3N0cykgewoJbWVtc2V0KGRwLCAtMSwgc2l6ZW9mKGRwKSk7CiAJaW50IHN1bSA9IGxvd2VzdF9jb3N0X2hlbHBlcihibHVlQ29zdHMsIGdyZWVuQ29zdHMsIHJlZENvc3RzLCAwLCAwLCAwKTsKCXZlY3RvcjxzdHJpbmc+IGNvbG9yOwoJaW50IGk9MDsKCXdoaWxlKGk8Ymx1ZUNvc3RzLnNpemUoKSkgewoJCWNvbG9yLnB1c2hfYmFjayhhbnNbaSsrXSk7Cgl9CglyZXR1cm4gY29sb3I7Cn0KCmludCBtYWluKCkgewoJaW50IG47Y2luPj5uOwoJdmVjdG9yPGludD4gYmx1ZUNvc3RzKG4pLCByZWRDb3N0cyhuKSwgZ3JlZW5Db3N0cyhuKTsKCWZvcihpbnQgaT0wO2k8bjtpKyspIGNpbj4+Ymx1ZUNvc3RzW2ldOwoJZm9yKGludCBpPTA7aTxuO2krKykgY2luPj5ncmVlbkNvc3RzW2ldOwoJZm9yKGludCBpPTA7aTxuO2krKykgY2luPj5yZWRDb3N0c1tpXTsKCXZlY3RvcjxzdHJpbmc+IHJlcyA9IGxvd2VzdF9jb3N0KGJsdWVDb3N0cywgZ3JlZW5Db3N0cywgcmVkQ29zdHMpOwoJZm9yKGF1dG8geCA6IHJlcykgY291dDw8eDw8IiAiOwoJcmV0dXJuIDA7Cn0=