#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e4 + 5;
static int N, perm[MAXN];
static char S[MAXN], test[3][MAXN], resp[3][MAXN];
int main() {
  scanf("%s", S);
  N = strlen(S);
  test[0][0] = test[1][0] = test[2][0] = 'a';
  for (int i = 1; i < N; i++) {
    for (int j = 0; j < 3; j++) test[j][i] = test[j][i - 1];
    if ((++test[2][i]) > 'z') {
      test[2][i] = 'a';
      if ((++test[1][i]) > 'z') ++test[0][i], test[1][i] = 'a';
    }
  }
  for (int i = 0; i < 3; i++) {
    printf("? %s\n", test[i]);
    fflush(stdout);
    scanf("%s", resp[i]);
  }
  memset(perm, -1, sizeof perm);
  for (int i = 0; i < N; i++)
    for (int j = 0; perm[i] == -1 && j < N; j++)
      if (test[0][i] == resp[0][j] && test[1][i] == resp[1][j] &&
          test[2][i] == resp[2][j])
        perm[i] = j;
  printf("! ");
  for (int i = 0; i < N; i++) putchar(S[perm[i]]);
  puts("");
  return 0;
}
