#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define INF (1<<29) #define rep(i,n) for(int i=0;i<(int)(n);i++) #define all(v) v.begin(),v.end() #define uniq(v) v.erase(unique(all(v)),v.end()) int run(int x,int y,string s) { int st[5001],p=0; for (char c : s) { if (c == 'c') { st[p++] = x; } else if (c == 'w') { st[p++] = y; } else if (c == 'C') { st[p - 2] = st[p - 1] + st[p - 2]; p --; } else { st[p - 2] = st[p - 1] - st[p - 2]; p --; } } return st[0]; } int main() { ios::sync_with_stdio(0); cin.tie(0); long long x, y, z; cin >> x >> y >> z; for (int i = -5000; i <= 5000;i++) { for (int j = -5000 + abs(i); j <= 5000 - abs(i); j++) { if (x*i + y*j == z) { if (i == 0 && j == 0) { continue; } int n = (abs(i) + abs(j)) * 2; if (i > 0 || j > 0)n--; else n += 3; if (n > 10000)continue; string num, op; if (i > 0) { num+= 'c'; rep(_, i - 1) { num += 'c'; op += 'C'; } if (j > 0) { rep(_, j) { num += 'w'; op += 'C'; } } else { rep(_, -j) { num += 'w'; op += 'W'; } } } else if (j > 0) { num += 'w'; rep(_, j - 1) { num += 'w'; op += 'C'; } rep(_, -i) { num += 'c'; op += 'W'; } } else { num += 'c'; num += 'c'; op += 'W'; rep(_, -i) { num += 'c'; op += 'W'; } rep(_, -j) { num += 'w'; op += 'W'; } } reverse(all(num)); //cout << run(x, y, num + op)<