#include <bits/stdc++.h>
#define For(i, l, r) for (register int i = l, _r = r; i <= _r; ++i)
#define Ford(i, l, r) for (register int i = r, _l = l; i >= _l; --i)
using namespace std;
typedef long long ll;
#define pii pair<int, int>
#define mk make_pair
const int N = 1e5 + 20;
const int mod = 1e9 + 7;
int T, n, a[N];
ll sum, tot;

inline int read()
{
    int x = 0, f = 1;
    char ch = getchar();
    while (ch < '0' || ch > '9')
    {
        if (ch == '-')
            f = -1;
        ch = getchar();
    }
    while (ch >= '0' && ch <= '9')
    {
        x = (x << 3) + (x << 1) + ch - '0';
        ch = getchar();
    }
    return x * f;
}

int main()
{
    int t = read();
    while (t--)
    {
        sum = tot = 0;
        n = read();
        For(i, 1, n)
            a[i] = read();
        sort(a + 1, a + 1 + n);
        if (n & 1)
        {
            For(i, 2, n) i & 1 ? sum += a[i] : tot += a[i];
            sum += a[1];
            puts(sum ^ tot ? "Second" : "First");
        }
        else
        {
            For(i, 1, n) i & 1 ? sum += a[i] : tot += a[i];
            puts(sum ^ tot ? "First" : "Second");
        }
    }
    return 0;
}

#define _DEBUG
#include "bits/stdc++.h"
//#include <atcoder/all>
#define CHOOSE(a) CHOOSE2 a
#define CHOOSE2(a0,a1,a2,a3,a4,a5,x,...) x
#define debug_1(x1) cout<<#x1<<": "<<x1<<endl
#define debug_2(x1,x2) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<endl
#define debug_3(x1,x2,x3) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<endl
#define debug_4(x1,x2,x3,x4) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<", "#x4<<": "<<x4<<endl
#define debug_5(x1,x2,x3,x4,x5) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<", "#x4<<": "<<x4<<", "#x5<<": "<<x5<<endl
#define debug_6(x1,x2,x3,x4,x5,x6) cout<<#x1<<": "<<x1<<", "#x2<<": "<<x2<<", "#x3<<": "<<x3<<", "#x4<<": "<<x4<<", "#x5<<": "<<x5<<", "#x6<<": "<<x6<<endl
#ifdef _DEBUG
#define debug(...) CHOOSE((__VA_ARGS__,debug_6,debug_5,debug_4,debug_3,debug_2,debug_1,~))(__VA_ARGS__)
#else
#define debug(...)
#endif
#define rep(index,num) for(int index=0;index<(int)num;index++)
#define rep1(index,num) for(int index=1;index<=(int)num;index++)
#define brep(index,num) for(int index=(int)num-1;index>=0;index--)
#define brep1(index,num) for(int index=(int)num;index>0;index--)
#define scan(argument) cin>>argument
#define prin(argument) cout<<argument<<endl
#define prind(argument) cout<<std::fixed<<setprecision(13)<<argument<<endl
#define kaigyo cout<<endl
#define eps 1e-7
#define PI acosl(-1)
#define mp(a1,a2) make_pair(a1,a2)
#define ALL(a) (a).begin(),(a).end()
#define rALL(a) (a).rbegin(),(a).rend()
#define puba(a) emplace_back(a)
#define pubamp(a,b) emplace_back(mp(a,b))
typedef long long ll;
typedef long double ld;
using namespace std;
//using namespace atcoder;
typedef pair<ll,ll> pll;
typedef pair<int,int> pint;
typedef vector<int> vint;
typedef vector<ll> vll;
typedef vector<pint> vpint;
typedef vector<pll> vpll;
template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; }
template<class T> bool chmin(T &a, const T &b) { if (a>b) { a=b; return 1; } return 0; }
ll INFl=(ll)1e+18+1;
int INF=1e+9+1;

/*n進数変換*/
template<typename TypeInt>
std::string Itoa(const TypeInt v, int base)
{
    static const char table[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    string ret;
    static numeric_limits<TypeInt> t;
    TypeInt n = v;
    if (t.is_signed) {
        if (v < 0) n *= -1;
    }

    while (n >= base) {
        ret += table[n%base];
        n /= base;
    }
    ret += table[n];
    if (t.is_signed) {
        if (v < 0 && base == 10) ret += '-';
    }
    // 文字列の順番を逆にする
    std::reverse(ret.begin(), ret.end());

    return ret;
}
ll dp[19][(1<<18)];
int main(){
	int N,M;
	int X[101],Y[101],Z[101];
	scan(N>>M);
	rep(i,M){
		scan(X[i]>>Y[i]>>Z[i]);
		X[i]--; Y[i]--;
	}
	dp[0][0]=1;
	int bitall=(1<<N);
	rep(i,N){
		rep(bit,bitall){
			if(dp[i][bit]==0) continue;
			//string BIT=Itoa(bit,2);
			//debug(i,BIT,dp[i][bit]);
			rep(j,N){
				if(bit>>j&1) continue;
				int nextbit=bit|(1<<j);
				//string NEXTBIT=Itoa(nextbit,2);
				bool ok=1;
				rep(m,M){
					if(X[m]<i) continue;
					int yikacnt=0;
					int tmpbit=nextbit;
					rep(k,Y[m]+1){
						yikacnt+=((tmpbit>>k)&1);
					}
					if(yikacnt>Z[m]){
						//debug(NEXTBIT,Y[m],yikacnt,Z[m]);
						ok=0;
						break;
					}
				}


				//debug(i,BIT,NEXTBIT,ok);
				if(ok) dp[i+1][nextbit]+=dp[i][bit];
			}
		}
	}
	prin(dp[N][bitall-1]);
	return 0;
}
