#include <bits/stdc++.h>
template <class T>
inline void read(T &x) {
  int f = 1, c;
  while (!isdigit(c = getchar()))
    if (c == '-') f = -1;
  x = c - '0';
  while (isdigit(c = getchar())) {
    x = x * 10 + c - '0';
  }
  x *= f;
}
using LL = long long;
char tmp[20];
inline void input() { scanf("%s", tmp); }
inline void query(int x, int y) {
  printf("? %d %d\n", x, y);
  fflush(stdout);
  input();
}
inline void answer(int x) {
  printf("! %d\n", x);
  fflush(stdout);
}
void testCase() {
  int n = 0;
  while (n < 30) {
    query((1 << n) - 1, (1 << (n + 1)) - 1);
    if (*tmp == 'x') break;
    ++n;
  }
  if (!n) {
    query(2, 1);
    answer(*tmp == 'x' ? 1 : 2);
    return;
  }
  int l = (1 << n), r = (1 << (n + 1)) - 1;
  while (l < r) {
    query(l - 1, ((l + r) >> 1));
    if (*tmp == 'x')
      r = ((l + r) >> 1);
    else
      l = ((l + r) >> 1) + 1;
  }
  answer(l);
}
int main() {
  while (input(), *tmp == 's') {
    testCase();
  }
}
