//code by whatu
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
#define FOR(i, k, n) for(i=(int)(k);i<(int)(n);i++)
void Run(vector<string> &in, int maxT, vector<bool> &live) {
int i, j;
FOR(j, 0, maxT) {
int all = 0;
FOR(i, 0, in.size()) {
if (!live[i])continue;
if (all == 7)break;
if (in[i][j] == 'R' && !(all & 4)) all ^= 4;
else if (in[i][j] == 'S' && !(all & 2)) all ^= 2;
else if (in[i][j] == 'P' && !(all & 1)) all ^= 1;
}
switch (all) {
case 3: {
FOR(i, 0, in.size()) {
if (!live[i])continue;
if (in[i][j] == 'P') live[i] = false;
}
}break;
case 5: {
FOR(i, 0, in.size()) {
if (!live[i])continue;
if (in[i][j] == 'R') live[i] = false;
}
}break;
case 6: {
FOR(i, 0, in.size()) {
if (!live[i])continue;
if (in[i][j] == 'S') live[i] = false;
}
}break;
case 1:
case 2:
case 4:
case 7:continue;
}
}
return;
}
int main() {
stringstream answer;
int t;
cin >> t;
while (t--) {
int i, n, tR = 0, winner = -1;
vector<string> input;
vector<bool> alive;
cin >> n;
input.resize(n);
alive.resize(n);
FOR(i, 0, n) {
cin >> input[i];
alive[i] = true;
if (tR < input[i].length())
tR = input[i].length();
}
FOR(i, 0, n)
while (input[i].length() < tR)
input[i].push_back('P');
Run(input, tR, alive);
FOR(i, 0, n) if (alive[i]) {
if (winner == -1) winner = 1 + i;
else { winner = 0; break; }
}
answer << winner << endl;
}
cout << answer.str();
return 0;
}
Ly9jb2RlIGJ5IHdoYXR1CgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgRk9SKGksIGssIG4pIGZvcihpPShpbnQpKGspO2k8KGludCkobik7aSsrKQoKdm9pZCBSdW4odmVjdG9yPHN0cmluZz4gJmluLCBpbnQgbWF4VCwgdmVjdG9yPGJvb2w+ICZsaXZlKSB7CglpbnQgaSwgajsKCUZPUihqLCAwLCBtYXhUKSB7CgkJaW50IGFsbCA9IDA7CgkJRk9SKGksIDAsIGluLnNpemUoKSkgewoJCQlpZiAoIWxpdmVbaV0pY29udGludWU7CgkJCWlmIChhbGwgPT0gNylicmVhazsKCgkJCWlmIChpbltpXVtqXSA9PSAnUicgJiYgIShhbGwgJiA0KSkgYWxsIF49IDQ7CgkJCWVsc2UgaWYgKGluW2ldW2pdID09ICdTJyAmJiAhKGFsbCAmIDIpKSBhbGwgXj0gMjsKCQkJZWxzZSBpZiAoaW5baV1bal0gPT0gJ1AnICYmICEoYWxsICYgMSkpIGFsbCBePSAxOwoJCX0KCQlzd2l0Y2ggKGFsbCkgewoJCWNhc2UgMzogewoJCQlGT1IoaSwgMCwgaW4uc2l6ZSgpKSB7CgkJCQlpZiAoIWxpdmVbaV0pY29udGludWU7CgkJCQlpZiAoaW5baV1bal0gPT0gJ1AnKSBsaXZlW2ldID0gZmFsc2U7CgkJCX0KCQl9YnJlYWs7CgkJY2FzZSA1OiB7CgkJCUZPUihpLCAwLCBpbi5zaXplKCkpIHsKCQkJCWlmICghbGl2ZVtpXSljb250aW51ZTsKCQkJCWlmIChpbltpXVtqXSA9PSAnUicpIGxpdmVbaV0gPSBmYWxzZTsKCQkJfQoJCX1icmVhazsKCQljYXNlIDY6IHsKCQkJRk9SKGksIDAsIGluLnNpemUoKSkgewoJCQkJaWYgKCFsaXZlW2ldKWNvbnRpbnVlOwoJCQkJaWYgKGluW2ldW2pdID09ICdTJykgbGl2ZVtpXSA9IGZhbHNlOwoJCQl9CgkJfWJyZWFrOwoJCWNhc2UgMToKCQljYXNlIDI6CgkJY2FzZSA0OgoJCWNhc2UgNzpjb250aW51ZTsKCQl9Cgl9CglyZXR1cm47Cn0KCmludCBtYWluKCkgewoJc3RyaW5nc3RyZWFtIGFuc3dlcjsKCWludCB0OwoJY2luID4+IHQ7CgkKCXdoaWxlICh0LS0pIHsKCQlpbnQgaSwgbiwgdFIgPSAwLCB3aW5uZXIgPSAtMTsKCQl2ZWN0b3I8c3RyaW5nPiBpbnB1dDsKCQl2ZWN0b3I8Ym9vbD4gYWxpdmU7CgkJCgkJY2luID4+IG47CgkJaW5wdXQucmVzaXplKG4pOwoJCWFsaXZlLnJlc2l6ZShuKTsJCQoJCQoJCUZPUihpLCAwLCBuKSB7CgkJCWNpbiA+PiBpbnB1dFtpXTsKCQkJYWxpdmVbaV0gPSB0cnVlOwoJCQlpZiAodFIgPCBpbnB1dFtpXS5sZW5ndGgoKSkKCQkJCXRSID0gaW5wdXRbaV0ubGVuZ3RoKCk7CgkJfQoJCQoJCUZPUihpLCAwLCBuKQoJCQl3aGlsZSAoaW5wdXRbaV0ubGVuZ3RoKCkgPCB0UikKCQkJCWlucHV0W2ldLnB1c2hfYmFjaygnUCcpOwoJCQoJCVJ1bihpbnB1dCwgdFIsIGFsaXZlKTsKCQkKCQlGT1IoaSwgMCwgbikgaWYgKGFsaXZlW2ldKSB7CgkJCWlmICh3aW5uZXIgPT0gLTEpIHdpbm5lciA9IDEgKyBpOwoJCQllbHNlIHsgd2lubmVyID0gMDsgYnJlYWs7IH0KCQl9CgkJYW5zd2VyIDw8IHdpbm5lciA8PCBlbmRsOwoJfQoJY291dCA8PCBhbnN3ZXIuc3RyKCk7CglyZXR1cm4gMDsKfQ==