#include <bits/stdc++.h>
using namespace std;
void solve() {
  int n = 100;
  vector<long long> a(n), b(n);
  for (int i = 0; i < n; i++) {
    a[i] = i + 1;
    b[i] = a[i] << 7;
  }
  unordered_map<long long, pair<long long, long long> > inv;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      long long xo = a[i] ^ b[j];
      inv[xo] = {a[i], b[j]};
    }
  }
  cout << "? ";
  for (int i = 0; i < n; i++) {
    cout << a[i] << " ";
  }
  cout << "\n";
  cout.flush();
  long long ai, bi;
  cin >> ai;
  cout << "? ";
  for (int i = 0; i < n; i++) {
    cout << b[i] << " ";
  }
  cout << "\n";
  cout.flush();
  cin >> bi;
  long long finalXor = ai ^ bi;
  auto pt = inv[finalXor];
  long long first = pt.first ^ ai;
  cout << "! " << first;
  cout.flush();
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t = 1;
  while (t--) solve();
  return 0;
}
