#include <bits/stdc++.h>
using namespace std;
int ask(int i, int j) {
  cout << "? " << i << " " << j << '\n';
  int x;
  cin >> x;
  fflush(stdout);
  return x;
}
int main() {
  set<int> st;
  st.insert(4);
  st.insert(8);
  st.insert(15);
  st.insert(16);
  st.insert(23);
  st.insert(42);
  int x = ask(1, 2);
  int y = ask(1, 3);
  int a[7];
  for (auto v : st) {
    a[1] = v;
    if ((x % a[1] == 0) && (y % a[1] == 0) && st.count(x / a[1]) &&
        st.count(y / a[1]) && (x / a[1] != a[1]) && (y / a[1] != a[1]))
      break;
  }
  a[2] = x / a[1];
  a[3] = y / a[1];
  x = ask(1, 4);
  y = ask(1, 5);
  a[4] = x / a[1];
  a[5] = y / a[1];
  for (auto tmp : st) {
    int flag = 0;
    for (int i = 1; i <= 5; i++) {
      if (tmp == a[i]) {
        flag = 1;
        break;
      }
    }
    if (flag == 0) {
      a[6] = tmp;
      break;
    }
  }
  cout << "!";
  for (int i = 1; i <= 6; i++) {
    cout << " " << a[i];
  }
}
