#include <bits/stdc++.h>
using namespace std;
int a[6];
int b[6] = {4, 8, 15, 16, 23, 42};
int c[4];
map<int, int> mp;
int main() {
  mp[4] = mp[8] = mp[15] = mp[16] = mp[23] = mp[42] = 1;
  char ch = '?', ch1 = '!';
  cout << ch << " "
       << "1"
       << " "
       << "2"
       << "\n";
  fflush(stdout);
  cin >> c[0];
  cout << ch << " 2 "
       << "3 \n";
  fflush(stdout);
  cin >> c[1];
  for (int i = 0; i < 6; i++) {
    if ((c[0] % b[i] == 0 && mp[c[0] / b[i]] != 0 && c[1] % b[i] == 0 &&
         mp[c[1] / b[i]] != 0) &&
        c[0] / b[i] != b[i] && c[1] / b[i] != b[i]) {
      a[1] = b[i];
      a[0] = c[0] / b[i];
      a[2] = c[1] / b[i];
      break;
    }
  }
  cout << ch << " 4 5 \n";
  fflush(stdout);
  cin >> c[2];
  cout << ch << " 5 6 \n";
  fflush(stdout);
  cin >> c[3];
  for (int i = 0; i < 6; i++) {
    if (c[2] % b[i] == 0 && mp[c[2] / b[i]] != 0 && c[3] % b[i] == 0 &&
        mp[c[3] / b[i]] != 0 && c[2] / b[i] != b[i] && c[3] / b[i] != b[i]) {
      a[4] = b[i];
      a[3] = c[2] / b[i];
      a[5] = c[3] / b[i];
      break;
    }
  }
  cout << ch1 << " ";
  for (int i = 0; i < 6; i++) {
    cout << a[i] << " ";
  }
  return 0;
}
