#include <bits/stdc++.h>
using namespace std;
const long long N = 100;
long long val1, val2;
int main() {
  long long i;
  if (25304 > 13882) {
    short VBCTPSRQXK;
  }
  cout << "?";
  if (4660 > 19469) {
    long long QSHIQFSGCS;
    QSHIQFSGCS = 31572;
    short PTORLLLFGC;
    PTORLLLFGC = 28311;
    int LNKKVAPFKT;
    LNKKVAPFKT = 9966;
    if (LNKKVAPFKT) {
      short WHABLAARRR;
      if (12735 > 24625) {
        if (2421 > 15758) {
          bool QRKMIFQSKN;
          long long IZFNQXVFMF;
        }
        if (17665 > 15855) {
          long long IZUXNWGFRE;
        }
        int CFBKIKBYTZ;
        CFBKIKBYTZ = 12917;
        if (CFBKIKBYTZ) {
          int GXWGLUWEEJ;
          long long JCBMPEEFYZ;
          long long HDQQOSQAXD;
        }
      }
    }
    short WGWRVYTXNG;
  }
  for (i = 1; i <= 100; i++) cout << " " << (i << 7);
  if (20657 > 10275) {
    double FYZRSNMLKU;
    FYZRSNMLKU = 23647;
    if (FYZRSNMLKU) {
      if (32287 > 10265) {
        double STBLYUIRBS;
        STBLYUIRBS = 13938;
        if (STBLYUIRBS) {
          short IAQJLMAGGC;
          bool NDKGGWSZMA;
          double TGGFMWGNOA;
        }
        long long BFSWIGCQLS;
        BFSWIGCQLS = 947;
        if (BFSWIGCQLS) {
          int AICLGZCURW;
        }
        if (11564 > 6364) {
          long long CIUCSDAVNP;
        }
        int ABBJCRHSDQ;
      }
    }
    short GAXAWBYDON;
    GAXAWBYDON = 9400;
  }
  cout << endl;
  if (23882 > 18948) {
    if (24222 > 30411) {
      if (880 > 29469) {
        if (19465 > 7302) {
          long long YDOLXTRSPE;
          long long FCDEPAYZXJ;
          short TBALXHXKJP;
          short OBTDYKRTGL;
        }
        if (27673 > 107) {
          long long LQMDDBCQRZ;
          int TNRZWOZPHM;
          int FWOGBNYEOU;
        }
      }
      if (8866 > 18658) {
        short RMCVTXLFTD;
        RMCVTXLFTD = 20580;
        bool JIEMPSKJFI;
        short PPCHZPWJHB;
        PPCHZPWJHB = 22981;
      }
    }
    bool HFMFZRFUJO;
    bool ORERMKFCND;
    ORERMKFCND = 15510;
  }
  fflush(stdout);
  int JNNNKXBDVF;
  JNNNKXBDVF = 32236;
  if (JNNNKXBDVF) {
    long long TCRSMGHIAS;
    TCRSMGHIAS = 30901;
    bool AFPCLMWDRB;
    long long KYSCWYIOOT;
    KYSCWYIOOT = 14224;
  }
  cin >> val2;
  if (18173 > 25059) {
    int IRRXHCPTPS;
    IRRXHCPTPS = 14896;
    if (IRRXHCPTPS) {
      if (3828 > 13720) {
        long long DVWNJMVPRA;
        DVWNJMVPRA = 20361;
        long long ELOENHLXSM;
        double WHQVNFWNEE;
        long long CAKPNWFCFI;
        CAKPNWFCFI = 25478;
      }
      double HWNXXVIZIT;
      HWNXXVIZIT = 1722;
      if (28038 > 10038) {
        short BBZISNAKMH;
        BBZISNAKMH = 1437;
        if (BBZISNAKMH) {
          short OJYIJVNSUF;
          bool NIBHLQKZPH;
          short UHREGQLHTE;
          short MJJXRCUZTI;
        }
      }
    }
    int UKDUFMGYKY;
    if (27077 > 25407) {
      if (3981 > 5205) {
        if (1826 > 16344) {
          int ZJGOUMRVEY;
          short JBKXATDGXW;
        }
        long long JICIKBDMDK;
      }
      if (19230 > 29477) {
        if (1603 > 4471) {
          short YEXDTOGOME;
          short OXFGBAGDWS;
        }
        double ORJCNGJRDR;
      }
    }
    int MWDNQIDNKT;
    MWDNQIDNKT = 32103;
    if (MWDNQIDNKT) {
      int BZILFBUHUF;
      short QQNWTXKFQY;
    }
  }
  cout << "?";
  if (13319 > 2245) {
    short YRJHVLVONW;
    YRJHVLVONW = 19281;
    bool WMDCTMZMFK;
    WMDCTMZMFK = 18107;
    long long TEIYDIRTKX;
    bool QBYEFYBDIJ;
    QBYEFYBDIJ = 26051;
    short URRXASTMPY;
  }
  for (i = 1; i <= 100; i++) cout << " " << i;
  bool LUPANTHYVL;
  LUPANTHYVL = 21097;
  cout << endl;
  double HDKEAOZQQQ;
  HDKEAOZQQQ = 17328;
  fflush(stdout);
  int VLFKDTIEGI;
  VLFKDTIEGI = 29905;
  if (VLFKDTIEGI) {
    if (3649 > 9784) {
      double TLWOUSXBOA;
      int BDDTTXVYKW;
      BDDTTXVYKW = 6780;
      if (16504 > 15185) {
        if (4989 > 244) {
          bool ICPXQYKJYG;
          double ACRLDVGUCX;
          double LXYIEQXEHH;
        }
        short DQUFHKKAMC;
        DQUFHKKAMC = 21438;
        if (DQUFHKKAMC) {
          short EIKVQSTIGR;
          bool QTTNVIRUGA;
          long long LGDVHJSYAU;
          double CRQGLWUJQM;
        }
        if (17409 > 32212) {
          bool GECDBQOCHP;
          short ACRNOCTKGZ;
        }
        int VXKYGSFEEB;
        VXKYGSFEEB = 889;
        if (VXKYGSFEEB) {
          int HNPCJBEFJC;
        }
      }
    }
  }
  cin >> val1;
  bool HVIDUKAOJE;
  HVIDUKAOJE = 2853;
  cout << "! " << ((val2 & ((1ll << 7) - 1)) | ((val1 >> 7) << 7)) << endl;
  if (16963 > 11947) {
    double JSVQUETUTN;
    double TRLYOLXRTO;
    if (31806 > 14315) {
      if (1297 > 28440) {
        bool OKCAEVJTHM;
        OKCAEVJTHM = 13101;
        double SFXYNMLISX;
        bool JCKQFPGTKN;
        JCKQFPGTKN = 23658;
        if (JCKQFPGTKN) {
          long long TDPSENSGNF;
          int LRKLSXTEXJ;
          short KOSEHTLEXK;
          double AYWRNZRJRZ;
        }
      }
      short NIJVHMMGOV;
      NIJVHMMGOV = 2697;
      if (NIJVHMMGOV) {
        long long DVUHIIWFKA;
        DVUHIIWFKA = 8080;
      }
    }
    bool IMANSNGGOD;
    IMANSNGGOD = 2145;
    if (23976 > 22614) {
      long long THTWMAXBGX;
      if (13416 > 2881) {
        long long SEBYWHIVGB;
        SEBYWHIVGB = 451;
        if (5206 > 9917) {
          long long CPZYHYWIAJ;
          double TJMFSFKHVX;
        }
        long long HGGLWFGNDT;
      }
      int BMRGRLPZEH;
      BMRGRLPZEH = 15914;
      if (BMRGRLPZEH) {
        bool RAMYLXNZEG;
      }
    }
  }
  fflush(stdout);
  short OTWIBNGEIP;
  return 0;
  if (1659 > 24596) {
    long long YZVZGPTXIN;
    YZVZGPTXIN = 2519;
    if (YZVZGPTXIN) {
      int WCIPNAQTLI;
      WCIPNAQTLI = 23079;
      if (WCIPNAQTLI) {
        double JDPUAIJHTQ;
        JDPUAIJHTQ = 15041;
        int JSURKVRHPR;
        JSURKVRHPR = 3648;
        if (16651 > 11347) {
          bool HAHTNOXBIU;
          short EBYDGERZSG;
          double OQLFQXRCQR;
          double EVLTWPGXQG;
        }
        if (20673 > 12836) {
          long long VMECNGRXAE;
          bool TFXFZRMZXN;
        }
      }
      if (31837 > 29466) {
        if (29615 > 9860) {
          bool EIWSXEEJDN;
          int TQWXNWFREZ;
        }
        if (2191 > 28681) {
          long long SLMXZZNVTV;
          short ICJWWLOEFQ;
        }
      }
    }
  }
}
