#include #include #include #include #include #include #include #include using namespace std; #define GET_ARG(a,b,c,F,...) F #define REP3(i,s,e) for (i = s; i <= e; i++) #define REP2(i,n) REP3 (i,0,(int)(n)-1) #define REP(...) GET_ARG (__VA_ARGS__,REP3,REP2) (__VA_ARGS__) #define RREP3(i,s,e) for (i = s; i >= e; i--) #define RREP2(i,n) RREP3 (i,(int)(n)-1,0) #define RREP(...) GET_ARG (__VA_ARGS__,RREP3,RREP2) (__VA_ARGS__) #define DEBUG(x) cerr << #x ": " << x << endl const int INF = 1e8; int main(void) { long long i, x, y, z; cin >> x >> y >> z; int cs = INF, ws = INF; if (z == 0) { cout << "ccW" << endl; return 0; } if (x == 0) { if (y != 0 && z % y == 0) { cs = 0; ws = z / y; } } else { REP (i,-5000,5000) { if ((z - i * y) % x == 0 && abs(cs) + abs(ws) > abs(i) + abs((z-i*y)/x)) { cs = (z-i*y)/x; ws = i; } } } if (2 * (abs(cs) + abs(ws)) - 1 > 10000) { cout << "NO" << endl; return 0; } string val, op; if (cs > 0) { val += 'c'; cs--; } else { val += 'w'; ws--; } for (;cs > 0; cs--) { val += 'c'; op += 'C'; } for (;cs < 0; cs++) { val += 'c'; op += 'W'; } for (;ws > 0; ws--) { val += 'w'; op += 'C'; } for (;ws < 0; ws++) { val += 'w'; op += 'W'; } reverse(val.begin(),val.end()); cout << val + op << endl; return 0; }