#include using namespace std; typedef long long ll; void debug_out(){ cerr << endl; } template void debug_out(Head H, Tail... T){ cerr << ' ' << H; debug_out(T...); } #ifdef local #define debug(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__) #else #define debug(...) 55 #endif mt19937_64 rnd(time(0)); const int N = 1e5 + 5; int main() { #ifdef local freopen("../in.txt", "r", stdin); #endif ios::sync_with_stdio(false); cin.tie(0), cout.tie(0); int T; cin >> T; while(T--){ int n; cin >> n; vector p1(n), p2(n), p(n); for(int& x: p) cin >> x, x--; for(int i = 0; i < n; i++) p1[i] = p2[i] = i; for(int i = 1; i <= 3 * n; i++){ int a = rnd() % n, b = rnd() % n; swap(p1[a], p1[b]); } for(int i = 1; i <= 7 * n; i++){ int a = rnd() % n, b = rnd() % n; swap(p2[a], p2[b]); } auto cal = [&](vector& p){ vector vis(n); int ans = 0; for(int i = 0; i < n; i++){ if(vis[i]) continue; int j = i; ans++; while(!vis[j]){ vis[j] = 1; j = p[j]; } } return ans; }; int a = cal(p), a1 = cal(p1), a2 = cal(p2); if(abs(a - a1) <= abs(a - a2)) cout << "First\n"; else cout << "Second\n"; } return 0; }