//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;
}