#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1000001;
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
string ask(string a) {
  cout << "? " << a << '\n';
  cout.flush();
  cin >> a;
  return a;
}
int main() {
  string cad;
  cin >> cad;
  string a, b, c;
  for (int i = 0; i < cad.size(); i++) {
    a += char((i / 1) % 26 + 'a');
    b += char((i / 26) % 26 + 'a');
    c += char((i / 676) % 26 + 'a');
  }
  a = ask(a);
  b = ask(b);
  c = ask(c);
  string ans = cad;
  for (int i = 0; i < cad.size(); i++) {
    int p = (a[i] - 'a') + (b[i] - 'a') * 26 + (c[i] - 'a') * 676;
    ans[p] = cad[i];
  }
  cout << "! " << ans << '\n';
  return 0;
}
