#include <iostream>
#include <vector>
using namespace std;
struct pro{
int pr,a, b;
};
int main() {
int a[6]={4,8,15,16,23,42};
vector<pro>p;
for(int i=0; i<6; i++){
for(int j=i+1; j<6; j++){
pro x;
x.a=a[i];
x.b=a[j];
x.pr=a[i]*a[j];
p.push_back(x);
}
}
int ans[7]={0,};
cout<<"? "<<1<<" "<<6<<endl;
int q;
cin>>q;
for(pro y:p){
if(q==y.pr){
ans[1]=y.a;
ans[6]=y.b;
}
}
cout<<"? "<<2<<" "<<5<<endl;
cin>>q;
for(pro y:p){
if(q==y.pr){
ans[2]=y.a;
ans[5]=y.b;
}
}
int f=3;
for(int i:a){
int k=0;
for(int j:ans){
if(i==j) k=1;
}
if(k==0){
ans[f]=i;
f=4;
}
}
cout<<"? "<<2<<" "<<3<<endl;
cin>>q;
if(ans[2]*ans[3]!=q){
swap(ans[3], ans[4]);
if(ans[2]*ans[3]!=q){
swap(ans[2], ans[5]);
if(ans[2]*ans[3]!=q){
swap(ans[3], ans[4]);
}
}
}
cout<<"? "<<1<<" "<<2<<endl;
cin>>q;
if(ans[1]*ans[2]!=q){
swap(ans[1],ans[6]);
}
cout<<"! ";
for(int i=1; i<=6; i++) cout<<ans[i]<<" ";
cout<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgcHJvewoJaW50IHByLGEsIGI7Cn07CmludCBtYWluKCkgewoJaW50IGFbNl09ezQsOCwxNSwxNiwyMyw0Mn07Cgl2ZWN0b3I8cHJvPnA7Cglmb3IoaW50IGk9MDsgaTw2OyBpKyspewoJCWZvcihpbnQgaj1pKzE7IGo8NjsgaisrKXsKCQkJcHJvIHg7CgkJCXguYT1hW2ldOwoJCQl4LmI9YVtqXTsKCQkJeC5wcj1hW2ldKmFbal07CgkJCXAucHVzaF9iYWNrKHgpOwoJCX0KCX0KCWludCBhbnNbN109ezAsfTsKCWNvdXQ8PCI/ICI8PDE8PCIgIjw8Njw8ZW5kbDsKCWludCBxOwoJY2luPj5xOwoJZm9yKHBybyB5OnApewoJCWlmKHE9PXkucHIpewoJCQlhbnNbMV09eS5hOwoJCQlhbnNbNl09eS5iOwoJCX0KCX0KCWNvdXQ8PCI/ICI8PDI8PCIgIjw8NTw8ZW5kbDsKCWNpbj4+cTsKCWZvcihwcm8geTpwKXsKCQlpZihxPT15LnByKXsKCQkJYW5zWzJdPXkuYTsKCQkJYW5zWzVdPXkuYjsKCQl9Cgl9CglpbnQgZj0zOwoJZm9yKGludCBpOmEpewoJCWludCBrPTA7CgkJZm9yKGludCBqOmFucyl7CgkJCWlmKGk9PWopIGs9MTsKCQl9CgkJaWYoaz09MCl7CgkJCWFuc1tmXT1pOwoJCQlmPTQ7CgkJfQoJfQoJY291dDw8Ij8gIjw8Mjw8IiAiPDwzPDxlbmRsOwoJY2luPj5xOwoJaWYoYW5zWzJdKmFuc1szXSE9cSl7CgkJc3dhcChhbnNbM10sIGFuc1s0XSk7CgkJaWYoYW5zWzJdKmFuc1szXSE9cSl7CgkJCXN3YXAoYW5zWzJdLCBhbnNbNV0pOwoJCQlpZihhbnNbMl0qYW5zWzNdIT1xKXsKCQkJCXN3YXAoYW5zWzNdLCBhbnNbNF0pOwoJCQl9CgkJfQoJfQkKCWNvdXQ8PCI/ICI8PDE8PCIgIjw8Mjw8ZW5kbDsKCWNpbj4+cTsKCWlmKGFuc1sxXSphbnNbMl0hPXEpewoJCXN3YXAoYW5zWzFdLGFuc1s2XSk7Cgl9Cgljb3V0PDwiISAiOwoJZm9yKGludCBpPTE7IGk8PTY7IGkrKykgY291dDw8YW5zW2ldPDwiICI7Cgljb3V0PDxlbmRsOwogCXJldHVybiAwOwp9