#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e4;
const int base[] = {1, 26, 26 * 26};
int n;
int f[maxn + 5];
char s[maxn + 5], t[maxn + 5];
int main() {
  scanf("%s", s);
  n = strlen(s);
  for (int i = 0; i < 3; ++i) {
    int c = 0, cc = 0;
    for (int k = 0; k < n; ++k) {
      t[k] = c + 'a';
      ++cc;
      if (cc == base[i]) c = (c + 1) % 26, cc = 0;
    }
    t[n] = '\0';
    printf("? %s\n", t);
    fflush(stdout);
    scanf("%s", t);
    for (int k = 0; k < n; ++k) f[k] += (t[k] - 'a') * base[i];
  }
  for (int i = 0; i < n; ++i) {
    t[f[i]] = s[i];
  }
  t[n] = '\0';
  printf("! %s\n", t);
  fflush(stdout);
  return 0;
}
