#include <bits/stdc++.h>
using namespace std;
template <class T>
using v2d = vector<vector<T>>;
template <class T>
bool uin(T &a, T b) {
  return a > b ? (a = b, true) : false;
}
template <class T>
bool uax(T &a, T b) {
  return a < b ? (a = b, true) : false;
}
mt19937 rng(chrono::system_clock::now().time_since_epoch().count());
const int maxN = 1e4 + 10;
const int sz = 26;
int n, a[maxN], b[maxN][26], nxt[maxN], tmp[maxN];
string t, s;
namespace Iteractor {
string ss;
vector<pair<int, int>> vec;
void func(string &d) {
  for (auto &p : vec) {
    swap(d[p.first], d[p.second]);
  }
}
void init(string &tt) {
  int n = 10000;
  ss.resize(n);
  for (auto &c : ss) {
    c = (char)(rng() % sz + 'a');
  }
  int m = rng() % (n + 1);
  while (m--) {
    int i = rng() % n;
    int j = rng() % n;
    vec.emplace_back(i, j);
  }
  tt = ss;
  func(tt);
  cout << ss << endl << tt << endl;
}
string ask(string d) {
  cout << "Ask " << d;
  func(d);
  cout << ", return " << d << endl;
  return d;
}
void guess(string ans) {
  cout << "Guess " << ans << endl;
  cout << (ans == ss ? "AC" : "WA") << endl;
}
}  // namespace Iteractor
string ask(string d) {
  cout << "? " << d << endl;
  string ans;
  cin >> ans;
  return ans;
}
void guess(string s) { cout << "! " << s << endl; }
void solve() {
  cin >> t;
  n = (int)t.size();
  int len = n;
  nxt[0] = n;
  for (int it = 1; it <= (int)(3); ++it) {
    len = (len + sz - 1) / sz;
    string d;
    int num = 0, cnt = 0, last = 0;
    for (int i = 0; i < n; i = nxt[i]) {
      char c = 'a';
      for (int j = i; j < nxt[i]; j += len) {
        tmp[last] = j;
        last = j;
        b[num][c - 'a'] = cnt;
        for (int k = j; k < min(nxt[i], j + len); k++) {
          d += c;
        }
        c++;
        cnt++;
      }
      num++;
    }
    tmp[last] = n;
    copy(tmp, tmp + n, nxt);
    string g = ask(d);
    for (int i = 0; i < (int)(n); ++i) {
      a[i] = b[a[i]][g[i] - 'a'];
    }
  }
  s.resize(n);
  for (int i = 0; i < (int)(n); ++i) {
    s[a[i]] = t[i];
  }
  guess(s);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  int T = 1;
  while (T--) {
    solve();
  }
  return 0;
}
