#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool checkMin(T& a, T b) {
  return (a > b ? a = b, 1 : 0);
}
template <class T>
inline bool checkMax(T& a, T b) {
  return (a < b ? a = b, 1 : 0);
}
void init() {}
void solve() {
  int ga, gb;
  putchar('?');
  putchar(' ');
  for (int i = 0; i < 100; i++) printf("%d ", i);
  puts("");
  fflush(stdout);
  scanf("%d", &ga);
  putchar('?');
  putchar(' ');
  for (int i = 1; i <= 100; i++) printf("%d ", i * 128);
  puts("");
  fflush(stdout);
  scanf("%d", &gb);
  putchar('!');
  putchar(' ');
  printf("%d\n", (((ga >> 7) << 7) | 127) & (gb | (127 << 7)));
}
int main() {
  init();
  solve();
  return 0;
}
