#include using namespace std; typedef long long ll; typedef long double ld; typedef pair ii; typedef vector vi; typedef vector vvi; typedef vector vii; #define x first #define y second #define pb push_back #define eb emplace_back #define all(v) (v).begin(), (v).end() const ll L = 5; bool check(ll a, ll b, string s) { vi C1(10, 0), C2(10, 0), C3(10, 0); ll a1 = a, b1 = b; for (ll i = 0; i < L; i++) { C1[a1%10]++; C2[b1%10]++; if (s[L-1-i] != 'w') { C3[a1%10]++; } if ((s[L-1-i] == 'g' && a1%10 != b1%10) || (s[L-1-i] != 'g' && a1%10 == b1%10)) { return false; } a1 /= 10; b1 /= 10; } for (ll i = 0; i < 10; i++) { if (C3[i] != min(C1[i], C2[i])) { return false; } } return true; } void run() { vector isPrime(100'000, true); vi P; isPrime[0] = false; isPrime[1] = false; for (ll i = 2; i < isPrime.size(); i++) { if (!isPrime[i]) continue; if (i > 10'000) P.pb(i); for (ll j = 2*i; j < isPrime.size(); j += i) { isPrime[j] = false; } } for (ll i = 0; i < 10; i++) { if (i >= 5) { cerr << P[0] << endl; } ll q = P[rand()%P.size()]; if (i == 0) q = 10247; else if (i == 1) q = 56893; cout << q << endl; string s; cin >> s; if (s == "ggggg") return; vi Pn; for (ll p : P) { if (check(q, p, s)) { Pn.pb(p); } } P = Pn; } } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); srand(time(0)); ll n; cin >> n; for (ll i = 0; i < n; i++) { run(); } return 0; }