#include<bits/stdc++.h>
using namespace std;
bool dp[101][1000001];
int ara[100+1];
int n;
vector<int> get(int x){
vector<int> cnt(n+1);
for(int i = n; x&&i>=1; i--){
if(x>=ara[i] && dp[i][x-ara[i]]){
x -= ara[i];
cnt[i]++;
i++;
}
}
return cnt;
}
int bin[1000006];
char st[300];
int main()
{
scanf("%d", &n);
for(int i = 1; i<=n; i++){
scanf("%d", &ara[i]);
}
dp[0][0] = 1;
int lim = 1000000;
for(int i = 1; i<=n; i++) dp[i][0] = 1;
for(int i = 1; i<=n; i++){
for(int j = 1; j<=ara[i]; j++) dp[i][j] = dp[i-1][j];
for(int j = ara[i]; j<=lim; j++){
dp[i][j] |= dp[i][j-ara[i]];
dp[i][j] |= dp[i-1][j];
}
}
// auto vt = get(56);
// for(int i = 1; i<=n; i++){
// cout << vt[i] << " ";
// }
int l = 0, r = -1;
for(int i = 1; i<=lim; i++){
if(dp[n][i]) bin[++r] = i;
}
while(l <= r){
int mid = (l + r)/2;
int val = bin[mid];
auto vt = get(val);
printf("1\n");
for(int i = 1; i<=n; i++){
if(i>1) printf(" ");
printf("%d", vt[i]);
}
printf("\n");
fflush(stdout);
scanf("%s", st);
if(st[0]=='g'){
l = mid + 1;
} else if(st[0]=='r'){
r = mid - 1;
} else{
printf("2\n%d\n", val);
fflush(stdout);
return 0;
}
}
swap(l, r);
if(bin[l]==bin[r]-2){
printf("2\n%d\n", bin[l]+1);
fflush(stdout);
return 0;
}
printf("2\n-1\n");
fflush(stdout);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKYm9vbCBkcFsxMDFdWzEwMDAwMDFdOwppbnQgYXJhWzEwMCsxXTsKaW50IG47CnZlY3RvcjxpbnQ+IGdldChpbnQgeCl7Cgl2ZWN0b3I8aW50PiBjbnQobisxKTsKCWZvcihpbnQgaSA9IG47IHgmJmk+PTE7IGktLSl7CgkJaWYoeD49YXJhW2ldICYmIGRwW2ldW3gtYXJhW2ldXSl7CgkJCXggLT0gYXJhW2ldOwoJCQljbnRbaV0rKzsKCQkJaSsrOwoJCX0KCX0KCXJldHVybiBjbnQ7Cn0KaW50IGJpblsxMDAwMDA2XTsKY2hhciBzdFszMDBdOwppbnQgbWFpbigpCnsKCXNjYW5mKCIlZCIsICZuKTsKCWZvcihpbnQgaSA9IDE7IGk8PW47IGkrKyl7CgkJc2NhbmYoIiVkIiwgJmFyYVtpXSk7Cgl9CglkcFswXVswXSA9IDE7CglpbnQgbGltID0gMTAwMDAwMDsKCWZvcihpbnQgaSA9IDE7IGk8PW47IGkrKykgZHBbaV1bMF0gPSAxOwoJZm9yKGludCBpID0gMTsgaTw9bjsgaSsrKXsKCQlmb3IoaW50IGogPSAxOyBqPD1hcmFbaV07IGorKykgZHBbaV1bal0gPSBkcFtpLTFdW2pdOwoJCWZvcihpbnQgaiA9IGFyYVtpXTsgajw9bGltOyBqKyspewoJCQlkcFtpXVtqXSB8PSBkcFtpXVtqLWFyYVtpXV07CgkJCWRwW2ldW2pdIHw9IGRwW2ktMV1bal07CgkJfQoJfQoJLy8gYXV0byB2dCA9IGdldCg1Nik7CgkvLyBmb3IoaW50IGkgPSAxOyBpPD1uOyBpKyspewoJLy8gCWNvdXQgPDwgdnRbaV0gPDwgIiAiOwoJLy8gfQoJaW50IGwgPSAwLCByID0gLTE7CiAKCWZvcihpbnQgaSA9IDE7IGk8PWxpbTsgaSsrKXsKCQlpZihkcFtuXVtpXSkgYmluWysrcl0gPSBpOyAKCX0KCXdoaWxlKGwgPD0gcil7CgkJaW50IG1pZCA9IChsICsgcikvMjsKCQlpbnQgdmFsID0gYmluW21pZF07CgkJYXV0byB2dCA9IGdldCh2YWwpOwoJCXByaW50ZigiMVxuIik7CgkJZm9yKGludCBpID0gMTsgaTw9bjsgaSsrKXsKCQkJaWYoaT4xKSBwcmludGYoIiAiKTsKCQkJcHJpbnRmKCIlZCIsIHZ0W2ldKTsKCQl9CgkJcHJpbnRmKCJcbiIpOwoJCWZmbHVzaChzdGRvdXQpOwoJCXNjYW5mKCIlcyIsIHN0KTsKCQlpZihzdFswXT09J2cnKXsKCQkJbCA9IG1pZCArIDE7CgkJfSBlbHNlIGlmKHN0WzBdPT0ncicpewoJCQlyID0gbWlkIC0gMTsKCQl9IGVsc2V7CgkJCXByaW50ZigiMlxuJWRcbiIsIHZhbCk7CgkJCWZmbHVzaChzdGRvdXQpOwoJCQlyZXR1cm4gMDsKCQl9Cgl9Cglzd2FwKGwsIHIpOwoJaWYoYmluW2xdPT1iaW5bcl0tMil7CgkJcHJpbnRmKCIyXG4lZFxuIiwgYmluW2xdKzEpOwoJCWZmbHVzaChzdGRvdXQpOwoJCXJldHVybiAwOwoJfQoJcHJpbnRmKCIyXG4tMVxuIik7CglmZmx1c2goc3Rkb3V0KTsKIAoJcmV0dXJuIDA7Cn0=