#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 100;
const int mod = 1e9 + 7;
mt19937 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
string t;
string get_next(string s) {
  s[2]++;
  if ((int)s[2] == (int)'z' + 1) s[2] = 'a', s[1]++;
  if ((int)s[1] == (int)'z' + 1) s[1] = 'a', s[0]++;
  return s;
}
map<string, int> pos;
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0);
  cin >> t;
  string str1, str2, str3;
  string s = "aaa";
  for (int i = 0; i < (int)t.size(); i++) {
    str1 += s[0];
    str2 += s[1];
    str3 += s[2];
    pos[s] = i;
    s = get_next(s);
  }
  string ans1, ans2, ans3;
  cout << "? " << str1 << endl;
  cin >> ans1;
  cout << "? " << str2 << endl;
  cin >> ans2;
  cout << "? " << str3 << endl;
  cin >> ans3;
  string ans((int)t.size(), '!');
  for (int i = 0; i < (int)t.size(); i++) {
    s = "";
    s += ans1[i];
    s += ans2[i];
    s += ans3[i];
    ans[pos[s]] = t[i];
  }
  cout << "! " << ans << endl;
  return 0;
}
