#include <bits/stdc++.h>
using namespace std;
int main() {
  int arr[] = {4, 8, 15, 16, 23, 42};
  int prod[15][3];
  int ind = 0;
  for (int i = 0; i < 5; i++) {
    for (int j = i + 1; j < 6; j++) {
      prod[ind][0] = arr[i] * arr[j];
      prod[ind][1] = arr[i];
      prod[ind][2] = arr[j];
      ind++;
    }
  }
  int ans[6];
  cout << "? 1 2" << endl
       << "? 2 3" << endl
       << "? 4 5" << endl
       << "? 5 6" << endl;
  fflush(stdout);
  int n1, n2, n3, n4;
  cin >> n1 >> n2 >> n3 >> n4;
  int a, b, c, d;
  for (int i = 0; i < 15; i++) {
    if (n1 == prod[i][0]) {
      a = prod[i][1];
      b = prod[i][2];
    }
    if (n2 == prod[i][0]) {
      c = prod[i][1];
      d = prod[i][2];
    }
  }
  if (a == c) {
    ans[1] = a;
    ans[0] = b;
    ans[2] = d;
  } else if (a == d) {
    ans[1] = a;
    ans[0] = b;
    ans[2] = c;
  } else if (b == c) {
    ans[1] = b;
    ans[0] = a;
    ans[2] = d;
  } else if (b == d) {
    ans[1] = b;
    ans[0] = a;
    ans[2] = c;
  }
  for (int i = 0; i < 15; i++) {
    if (n3 == prod[i][0]) {
      a = prod[i][1];
      b = prod[i][2];
    }
    if (n4 == prod[i][0]) {
      c = prod[i][1];
      d = prod[i][2];
    }
  }
  if (a == c) {
    ans[4] = a;
    ans[3] = b;
    ans[5] = d;
  } else if (a == d) {
    ans[4] = a;
    ans[3] = b;
    ans[5] = c;
  } else if (b == c) {
    ans[4] = b;
    ans[3] = a;
    ans[5] = d;
  } else if (b == d) {
    ans[4] = b;
    ans[3] = a;
    ans[5] = c;
  }
  cout << "! " << ans[0] << ' ' << ans[1] << ' ' << ans[2] << ' ' << ans[3]
       << ' ' << ans[4] << ' ' << ans[5] << endl;
}
