#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;}) #define rep(v,e) for(long v=0;v>9|a[i]<<23; } } void radix_sort(unsigned*a,int n){ static unsigned b[100000]; radix_sort_aux(a,b,n); radix_sort_aux(b,a,n); } unsigned b[100000]; int main(){ char*rp=mmap(0l,1l<<25,1,2,0,0ll); long n=rd(); long k=rd(); rep(i,k){ long a=rd(); long c=*rp; rp+=2; b[i]=c<<18|a; } radix_sort(b,k); char*wp=wbuf; long j=0; rep3(i,1,n+1){ unsigned p='BGR'; if(b[j]>>14==i){ if((char)b[j]=='G'){ p='BRG'; } else if((char)b[j]=='B'){ p='GRB'; } ++j; } ++i; if(b[j]>>14==i){ if((char)b[j]=='G'){ if(p=='GRB') p='RGB'; } else if((char)b[j]=='B'){ if(p=='BRG') p='RBG'; if(p=='BGR') p='GBR'; } ++j; } ++i; if(b[j]>>14==i){ ++j; } *(unsigned*)wp=p; wp+=3; } write(1,wbuf,n); _exit(0); }