#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void read(T&);
template <class Fir, class... Res>
void read(Fir&, Res&...);
template <class T>
inline void write(const T&);
template <class Fir, class... Res>
void write(const Fir&, const Res&...);
int main() {
  long long int a, b;
  bool flag;
  while (1) {
    string str;
    cin >> str;
    if (str == "end") {
      break;
    }
    if (str == "start") {
      a = 0, b = 1;
      flag = true;
      putchar('?');
      putchar(' ');
      write(a, b);
      putchar('\n');
      fflush(stdout);
      continue;
    }
    if (str == "x") {
      if (a == 0) {
        putchar('!');
        putchar(' ');
        write(1);
        putchar('\n');
        fflush(stdout);
        continue;
      }
      if (a & 1) {
        putchar('!');
        putchar(' ');
        write(a + 1);
        putchar('\n');
        fflush(stdout);
        continue;
      }
      flag = false;
      long long int tmp = a & (-a);
      tmp >>= 1;
      a += tmp;
      putchar('?');
      putchar(' ');
      write(a, b);
      putchar('\n');
      fflush(stdout);
    }
    if (str == "y") {
      if (flag) {
        a <<= 1;
        if (a == 0) {
          a = 1;
        }
        b <<= 1;
      } else {
        if (a & 1) {
          putchar('!');
          putchar(' ');
          write(a);
          putchar('\n');
          fflush(stdout);
          continue;
        }
        long long int tmp = a & (-a);
        a -= tmp;
        tmp >>= 1;
        a += tmp;
      }
      putchar('?');
      putchar(' ');
      write(a, b);
      putchar('\n');
      fflush(stdout);
    }
  }
  return 0;
}
template <class T>
void read(T& Re) {
  T k = 0;
  char ch = getchar();
  int flag = 1;
  while (!(ch >= '0' && ch <= '9')) {
    if (ch == '-') {
      flag = -1;
    }
    ch = getchar();
  }
  while ((ch >= '0' && ch <= '9')) {
    k = (k << 1) + (k << 3) + ch - '0';
    ch = getchar();
  }
  Re = flag * k;
}
template <class Fir, class... Res>
void read(Fir& Fi, Res&... Re) {
  read(Fi);
  read(Re...);
}
template <class T>
void write(const T& Wr) {
  if (Wr < 0) {
    putchar('-');
    write(-Wr);
  } else {
    if (Wr < 10) {
      putchar(Wr + '0');
    } else {
      write(Wr / 10);
      putchar((Wr % 10) + '0');
    }
  }
}
template <class Fir, class... Res>
void write(const Fir& Fi, const Res&... Re) {
  write(Fi);
  putchar(' ');
  write(Re...);
}
