#include <bits/stdc++.h>
using namespace std;
map<string, int> pos;
string s1, s2, s3;
void gen(int n) {
  s1 = s2 = s3 = "";
  int p = 0;
  for (int i = 0; i < 26; i++) {
    for (int j = 0; j < 26; j++) {
      for (int k = 0; k < 26; k++) {
        s1 = s1 + (char)(i + 'a');
        s2 = s2 + (char)(j + 'a');
        s3 = s3 + (char)(k + 'a');
        string ss = "";
        ss = ss + (char)(i + 'a');
        ss = ss + (char)(j + 'a');
        ss = ss + (char)(k + 'a');
        pos[ss] = p;
        p++;
        n--;
        if (n <= 0) return;
      }
    }
  }
}
int main() {
  string st;
  cin >> st;
  int n = st.size();
  gen(n);
  fflush(stdout);
  cout << "? " << s1 << endl;
  fflush(stdout);
  cin >> s1;
  cout << "? " << s2 << endl;
  fflush(stdout);
  cin >> s2;
  fflush(stdout);
  cout << "? " << s3 << endl;
  fflush(stdout);
  cin >> s3;
  fflush(stdout);
  string ans = st;
  for (int i = 0; i < n; i++) {
    string ss = "";
    ss = ss + s1[i];
    ss = ss + s2[i];
    ss = ss + s3[i];
    ans[pos[ss]] = st[i];
  }
  cout << "! " << ans << endl;
  fflush(stdout);
  return 0;
}
