#include int a[64], b[64]; int main() { int n; scanf("%d", &n); int i, j, k; j = k = -1; for (i = 0; i < n - 1; i++) { printf("? %d %d\n", i, n - 1); fflush(stdout); scanf("%d", &b[i]); if (b[i] > 0) { if (j < 0) j = i; else k = i; } } if (k < 0) { for (i = 0; i < n; i++) a[i] = 0; int v = b[j]; for (i = 0; i < 10; i++) { for (k = 0; k < 10; k++) { if (i * k != v) continue; if (i != k) { printf("! -1\n"); fflush(stdout); return 0; } a[n - 1] = a[j] = i; } } printf("! "); for (i = n - 1; i >= 0; i--) printf("%d", a[i]); printf("\n"); fflush(stdout); } else { printf("? %d %d\n", j, k); fflush(stdout); int v; scanf("%d", &v); v = b[j] * b[k] / v; for (a[n - 1] = 0; a[n - 1] * a[n - 1] < v; a[n - 1]++); for (i = 0; i < n - 1; i++) a[i] = b[i] / a[n - 1]; printf("! "); for (i = n - 1; i >= 0; i--) printf("%d", a[i]); printf("\n"); fflush(stdout); } return 0; }