#include using namespace std; random_device rnd; mt19937 mt(rnd()); int solve(vector A){ map,bool>,int> memo; auto dfs = [&](auto dfs,vector X,bool first) -> int { sort(X.begin(),X.end()); if(X.back() == 1) return first?0:1; if(memo.count({X,first})) return memo[{X,first}]; bool win = !first; for(int i=0; i b) break; X.at(i) = a; bool one = dfs(dfs,X,first^1); X.at(i) = b; bool two = dfs(dfs,X,first^1); X.at(i) = a+b; if(one == first || two == first) continue; ok = false; break; } if(ok){win = first; break;} } return memo[{X,first}] = win; }; auto f = [&](auto f,int pos) -> void { if(pos == A.size()) dfs(dfs,A,true),dfs(dfs,A,false); else for(int i=1; i<=13; i++) A.at(pos) = i,f(f,pos+1); }; f(f,0); int ret = dfs(dfs,A,true); set> look; for(auto [k,v] : memo) if(!look.count(k.first)){ auto V = k.first; look.insert(k.first); while(V.size() != A.size()) V.insert(V.begin(),1); int now1 = 0,now2 = 0; for(auto v : V) now1 ^= v%5==2,now2 ^= v==3,now1 ^= (v!=3&&v%5==3); if((v^1^k.second) != (now1|now2)){ for(auto v : V) cout << v << " "; cout << " " << (v^k.second^1) << "," << (now1|now2) << endl; } } return ret; } int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while(T--){ int N; cin >> N; int now1 = 0,now2 = 0; while(N--){ long long a; cin >> a; if(a%5 == 2 || a%5 == 3) now1 ^= 1; if(a == 3) now2 ^= 1,now1 ^= 1; } if(now1+now2) cout << "First" << "\n"; else cout << "Second" << "\n"; } }