#include <bits/stdc++.h>
using namespace std;
const int ALP = 26;
string res[3];
int N;
string T;
int main() {
  cin >> T;
  N = (int)T.size();
  for (int i = (0); i < (3); i++) {
    int pw = 1;
    for (int j = (0); j < (2 - i); j++) pw *= ALP;
    cout << "? ";
    for (int c = (0); c < (N); c++) {
      cout << (char)('a' + (c / pw) % ALP);
    }
    cout << endl;
    cin >> res[i];
  }
  string s(N, 'a');
  for (int i = (0); i < (N); i++) {
    int p0 = 1, p1 = 26, p2 = 26 * 26;
    s[(res[0][i] - 'a') * p2 + (res[1][i] - 'a') * p1 +
      (res[2][i] - 'a') * p0] = T[i];
  }
  cout << "! " << s << endl;
}
