#include<stdio.h>#include<string.h>int main(){int n, m, first = 1, temp[128], map[129][129], win[129], lose[129];while (scanf("%d", &n), n){if (!first)putchar('n');elsefirst = 0;memset(map, 0, sizeof(map));memset(win, 0, sizeof(win));memset(lose, 0, sizeof(lose));int i, j, k, num, t = 1 << n;for (i = 0; i < t; i++)temp[i] = i + 1;for (i = n - 1; i >= 0; i--)for (j = 0; j < 1 << i; j++){scanf("%d", &num);if (temp[2 * j] == num)map[num][temp[2 * j + 1]] = 1;elsemap[num][temp[2 * j]] = 1;temp[j] = num;}for (k = 1; k <= t; k++)for (i = 1; i <= t; i++)for (j = 1; j <= t; j++)map[i][j] = map[i][j] || (map[i][k] && map[k][j]);for (i = 1; i <= t; i++)for (j = 1; j <= t; j++)if (map[i][j]){win[i]++;lose[j]++;}scanf("%d", &m);for (i = 0; i < m; i++){scanf("%d", &num);printf("Player %d can be ranked as high as %d or as low as %d.n",num, lose[num] + 1, t - win[num]);}}return 0;}


