#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int main() {
  v.push_back(0);
  for (int i = 0; i < int(30); i++) v.push_back(1 << i);
  while (1) {
    int hi, lo;
    int test;
    string s;
    cin >> s;
    if (s == "mistake" || s == "end") return 0;
    bool found = 0;
    for (int i = 0; i < int(30); i++) {
      cout << "? " << v[i] << " " << v[i + 1] << endl;
      fflush(stdout);
      char c;
      cin >> c;
      if (c == 'e') return 0;
      if (c == 'x') {
        found = 1;
        lo = v[i] + 1;
        hi = v[i + 1];
        test = v[i];
        break;
      }
    }
    if (!found) {
      lo = v[v.size() - 1] + 1;
      hi = 1000000000;
      test = v[v.size() - 1];
    }
    while (hi - lo > 1) {
      int mid = (lo + hi) / 2;
      cout << "? " << test << " " << mid << endl;
      fflush(stdout);
      char c;
      cin >> c;
      if (c == 'e') return 0;
      if (c == 'x')
        hi = mid;
      else
        lo = mid + 1;
    }
    cout << "? " << test << " " << lo << endl;
    fflush(stdout);
    char c;
    cin >> c;
    if (c == 'e') return 0;
    if (c == 'x')
      cout << "! " << lo << endl;
    else
      cout << "! " << hi << endl;
  }
}
