#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; const double pi=4*atan(1.0); constexpr long long mod=static_cast(1e9+7); using cWeightEdges=vector>>; using cEdges=vector>; int main(){ long long x,y; long long z; cin>>x>>y>>z; bool is_find=false; long long n=1; string ans; if(z==0){ is_find=true; ans="ccW"; } else{ if(x==0 && y==0){ } else if(x==0 && y!=0){ if(z%y==0 && 2*(z/y)-1<=10000){ is_find=true; string s1(z/y,'w'); string s2(z/y-1,'C'); ans=s1+s2; } } else if(x!=0 && y==0){ if(z%x==0 && 2*(z/x)-1<=10000){ is_find=true; string s1(z/x,'c'); string s2(z/x-1,'C'); ans=s1+s2; } } else{ while(2*(n-1)+1<=10000){ long long rest=z-n*x; if(rest%y==0){ long long m=rest/y; if(m==0){ if(2*n-1<=10000){ string s1(n,'c'); string s2(n-1,'C'); ans=s1+s2; } } else{ if(2*n-1+2*abs(m)-1+1<=10000){ is_find=true; string s1(abs(m),'w'); string s2(abs(m)-1,'C'); string s3(n,'c'); string s4(n-1,'C'); if(m>0){ ans+=s1+s2+s3+s4; ans+="C"; } else{ ans+=s1+s2+s3+s4; ans+="W"; } break; } } } ++n; } n=1; if(!is_find){ while(2*(n-1)+1<=10000){ long long rest=z-n*y; if(rest%x==0){ long long m=rest/x; if(m==0){ if(2*n-1<=10000){ string s1(n,'w'); string s2(n-1,'C'); ans=s1+s2; } } else{ if(2*n-1+2*abs(m)-1+1<=10000){ is_find=true; string s1(abs(m),'c'); string s2(abs(m)-1,'C'); string s3(n,'w'); string s4(n-1,'C'); if(m>0){ ans+=s1+s2+s3+s4; ans+="C"; } else{ ans+=s1+s2+s3+s4; ans+="W"; } break; } } } ++n; } } } } if(is_find)cout<