#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("-ffloat-store")
#pragma GCC optimize("-fno-defer-pop")
long long int power(long long int a, long long int b, long long int m) {
  if (b == 0) return 1;
  if (b == 1) return a % m;
  long long int t = power(a, b / 2, m) % m;
  t = (t * t) % m;
  if (b & 1) t = ((t % m) * (a % m)) % m;
  return t;
}
long long int modInverse(long long int a, long long int m) {
  return power(a, m - 2, m);
}
int main() {
  ios_base::sync_with_stdio(false);
  int t = 1;
  while (t--) {
    string str;
    cin >> str;
    fflush(stdin);
    while (str != "end") {
      string s;
      long long int start = 1, end = 2;
      cout << "? " << end << ' ' << start << endl;
      fflush(stdout);
      cin >> s;
      fflush(stdin);
      int ct = 0;
      while (s != "y") {
        start = end;
        end = end * 2;
        if (end >= 1000000000) {
          end = 1000000000;
          cout << "? " << end << ' ' << start << endl;
          fflush(stdout);
          cin >> s;
          fflush(stdin);
          if (s == "x") {
            ct = 1;
          }
          break;
        }
        cout << "? " << end << ' ' << start << endl;
        fflush(stdout);
        cin >> s;
      }
      if (ct == 1) {
        cout << "! 1\n";
        fflush(stdout);
        cin >> str;
        fflush(stdin);
        continue;
      }
      while (start < end) {
        long long int mid = ceil((start + end) / 2.0);
        cout << "? " << mid << ' ' << start << endl;
        fflush(stdout);
        cin >> s;
        if (s == "x") {
          start = mid;
        } else {
          end = mid - 1;
        }
      }
      cout << "! " << start + 1 << endl;
      fflush(stdout);
      cin >> str;
      fflush(stdout);
    }
  }
  return 0;
}
