// ~~ icebear love atttt ~~
#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int inf = 1e9 + 27092008;
const long long INF = 1e18 + 27092008;
const int N = 1020 + 5;
int n, v[N];
char cur[N], res[N];
int ans;
bitset<N> vis[1 << 3][201][N];
struct State {
int i, j, k, mask;
};
queue<State> states;
void dfs(int mask, int i, int x, int y, int z) {
if (i == n) {
if (mask == (1 << 3) - 1 && ans < x + y + z) {
ans = x + y + z;
for(int i = 0; i < n; i++) res[i] = cur[i];
}
return;
}
if (vis[mask][i][x][y]) return;
vis[mask][i][x][y] = true;
cur[i] = 'P';
dfs(mask | (1 << 0), i + 1, x ^ v[i], y, z);
cur[i] = 'V';
dfs(mask | (1 << 1), i + 1, x, y ^ v[i], z);
cur[i] = 'H';
dfs(mask | (1 << 2), i + 1, x, y, z ^ v[i]);
}
int main() {
#define task "chemistry"
if (fopen(task".inp", "r")) {
freopen(task".inp", "r", stdin);
freopen(task".out", "w", stdout);
}
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
int subtask; cin >> subtask;
while(cin >> n) {
if (!n) break;
for(int i = 0; i < n; i++) cin >> v[i];
memset(vis, false, sizeof vis);
ans = -1;
dfs(0, 0, 0, 0, 0);
for(int i = 0; i < n; i++)cout << res[i];
cout << '\n';
}
return 0;
}
Ly8gfn4gaWNlYmVhciBsb3ZlIGF0dHR0IH5+CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CmNvbnN0IGludCBpbmYgPSAxZTkgKyAyNzA5MjAwODsKY29uc3QgbG9uZyBsb25nIElORiA9IDFlMTggKyAyNzA5MjAwODsKY29uc3QgaW50IE4gPSAxMDIwICsgNTsKaW50IG4sIHZbTl07CmNoYXIgY3VyW05dLCByZXNbTl07CmludCBhbnM7CmJpdHNldDxOPiB2aXNbMSA8PCAzXVsyMDFdW05dOwpzdHJ1Y3QgU3RhdGUgewogICAgaW50IGksIGosIGssIG1hc2s7Cn07CnF1ZXVlPFN0YXRlPiBzdGF0ZXM7Cgp2b2lkIGRmcyhpbnQgbWFzaywgaW50IGksIGludCB4LCBpbnQgeSwgaW50IHopIHsKICAgIGlmIChpID09IG4pIHsKICAgICAgICBpZiAobWFzayA9PSAoMSA8PCAzKSAtIDEgJiYgYW5zIDwgeCArIHkgKyB6KSB7CiAgICAgICAgICAgIGFucyA9IHggKyB5ICsgejsKICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgcmVzW2ldID0gY3VyW2ldOwogICAgICAgIH0KICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAodmlzW21hc2tdW2ldW3hdW3ldKSByZXR1cm47CiAgICB2aXNbbWFza11baV1beF1beV0gPSB0cnVlOwogICAgY3VyW2ldID0gJ1AnOwogICAgZGZzKG1hc2sgfCAoMSA8PCAwKSwgaSArIDEsIHggXiB2W2ldLCB5LCB6KTsKICAgIGN1cltpXSA9ICdWJzsKICAgIGRmcyhtYXNrIHwgKDEgPDwgMSksIGkgKyAxLCB4LCB5IF4gdltpXSwgeik7CiAgICBjdXJbaV0gPSAnSCc7CiAgICBkZnMobWFzayB8ICgxIDw8IDIpLCBpICsgMSwgeCwgeSwgeiBeIHZbaV0pOwp9CgppbnQgbWFpbigpIHsKI2RlZmluZSB0YXNrICJjaGVtaXN0cnkiCiAgICBpZiAoZm9wZW4odGFzayIuaW5wIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4odGFzayIuaW5wIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3Blbih0YXNrIi5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBpbnQgc3VidGFzazsgY2luID4+IHN1YnRhc2s7CiAgICB3aGlsZShjaW4gPj4gbikgewogICAgICAgIGlmICghbikgYnJlYWs7CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykgY2luID4+IHZbaV07CiAgICAgICAgbWVtc2V0KHZpcywgZmFsc2UsIHNpemVvZiB2aXMpOwogICAgICAgIGFucyA9IC0xOwogICAgICAgIGRmcygwLCAwLCAwLCAwLCAwKTsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKWNvdXQgPDwgcmVzW2ldOwogICAgICAgIGNvdXQgPDwgJ1xuJzsKICAgIH0KICAgIHJldHVybiAwOwp9Cgo=