#include <bits/stdc++.h>
using namespace std;
int k;
int ask(long long a, long long b) {
  cout << "? " << a << " " << b << endl;
  fflush;
  char ch;
  cin >> ch;
  if (ch == 'x') {
    return 0;
  } else if (ch == 'y') {
    return 1;
  } else {
    return -1;
  }
}
void callit() {
  long long z = 1, m = 1;
  int r = 1;
  r = ask((long long)1, (long long)2);
  if (r == 0) {
    r = ask((long long)2, (long long)1);
    if (r == 0) {
      cout << "! 1" << endl;
      fflush;
    } else {
      cout << "! 2" << endl;
      fflush;
    }
    string cx;
    cin >> cx;
    if (cx == "start") {
      k = 1;
      return;
    } else {
      k = -1;
      return;
    }
  }
  m = 2;
  while (r == 1) {
    z = m;
    m *= 2;
    r = ask(z, m);
  }
  if (r == -1) {
    k = -1;
    return;
  }
  if (r == 0) {
    while (z < m) {
      if (m == z + (long long)1) {
        r = ask(z, m);
        if (r == 0) z++;
        if (r == 1) m--;
        if (r == -1) {
          k = -1;
          return;
        }
        continue;
      }
      r = ask(z, (m + z) / 2);
      if (r == 0) {
        m += z;
        m /= 2;
      } else if (r == 1) {
        z += m;
        z /= 2;
      } else {
        k = -1;
        return;
      }
    }
    if (z == m) {
      cout << "! " << z << endl;
      fflush;
      string ss;
      cin >> ss;
      if (ss == "start")
        k = 1;
      else
        k = -1;
    }
  }
}
int main() {
  string s;
  cin >> s;
  while (1) {
    k = 0;
    callit();
    if (k == 1) continue;
    if (k == -1) break;
  }
  return 0;
}
