#include #define broken cerr << "running on " << __FUNCTION__ <<" "<< __LINE__ << endl #define x first #define y second #define mp make_pair #define sz(a) int((a).size()) #define par pair #define poly vector #define i64 long long #define u64 unsigned long long using namespace std; const int N = 1e5 + 10; int n, a[N], vis[N]; mt19937 rnd(time(NULL) ^ *new char); void gen1() { for(int i = 1; i <= n; i++) a[i] = i; for(int i = 1; i <= 3 * n; i++) { int x = rnd() % n + 1, y = rnd() % n + 1; swap(a[x], a[y]); } } void gen2() { for(int i = 1; i <= n; i++) a[i] = i; for(int i = 1; i <= 7 * n; i++) { int x = rnd() % n + 1, y = rnd() % n + 1; swap(a[x], a[y]); } } int calc() { for(int i = 1; i <= n; i++) vis[i] = 0; int cnt = 0; for(int i = 1; i <= n; i++) { if(vis[i]) continue; int x = i; cnt++; while(!vis[x]) vis[x] = 1, x = a[x]; } return cnt; } void solve() { cin >> n; for(int i = 1; i <= n; i++) cin >> a[i]; int cnt = calc(); if(cnt <= 50) cout << "Second" << endl; else cout << "First" << endl; return; } int main() { int T; cin >> T; while(T--) solve(); return 0; }