#include int ans[1000]; int v[1000][1000]; void add(int j) { int i; for (i = 0; i < 200; i++) { ans[i] += v[j][i]; ans[i + 1] += ans[i] / 10; ans[i] %= 10; } return; } int main() { int i, j; for (i = 0; i < 202; i++) ans[i] = v[0][i] = 0; v[0][0] = 1; for (j = 1; j < 400; j++) { for (i = 0; i < 202; i++) v[j][i] = v[j - 1][i] * 2; for (i = 0; i < 200; i++) { v[j][i + 1] += v[j][i] / 10; v[j][i] %= 10; } } char res[4]; for (j = 350; j >= 0; j--) { for (i = 200; v[j][i] == 0; i--); if (i >= 100) continue; printf("? 1 "); for (; i >= 0; i--) printf("%d", v[j][i]); printf("\n"); fflush(stdout); scanf("%s", res); if (res[0] == '>' || res[0] == '=') add(j); } for (i = 200; ans[i] == 0 && i >= 0; i--); if (i < 0) printf("! 0\n"); else { printf("! "); for (; i >= 0; i--) printf("%d", ans[i]); printf("\n"); } return 0; }