#include <bits/stdc++.h>
using namespace std;
const int S = 62;
inline int read() {
  int x = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    x = (x << 1) + (x << 3) + c - '0';
    c = getchar();
  }
  return x * f;
}
int cnt = 0, len, t[66];
char ch[66];
string dfs(int l, int r) {
  if (l == r) {
    string myh(t[l], ch[l]);
    return myh;
  }
  int mid = (l + r) >> 1;
  string L = dfs(l, mid), R = dfs(mid + 1, r), myh = "";
  int j = 0;
  for (int i = 0; i < (int)L.length(); ++i) {
    while (j < (int)R.size()) {
      string s = myh + R[j] + L.substr(i, L.length() - i);
      cout << "? " << s << endl;
      int qwq = read();
      int o = L.length() + j + 1;
      if (len - qwq != o) break;
      myh += R[j++];
    }
    myh += L[i];
  }
  myh += R.substr(j, R.length() - j);
  return myh;
}
int main() {
  for (char i = 'a'; i <= 'z'; ++i) {
    ch[++cnt] = i;
  }
  for (char i = 'A'; i <= 'Z'; ++i) {
    ch[++cnt] = i;
  }
  for (int i = '0'; i <= '9'; ++i) {
    ch[++cnt] = i;
  }
  for (int i = 1; i <= S; ++i) {
    string s(128, ch[i]);
    cout << "? " << s << endl;
    t[i] = read();
    len += t[i];
  }
  string ans = "7";
  cout << "! " << ans << endl;
  return 0;
}
