#include using namespace std; //#include //using namespace atcoder; using ll = long long int; using ull = unsigned long long int; using ld = long double; constexpr ll MAX = 2000000000000000000; constexpr ld PI = 3.14159265358979; constexpr ll MOD = 0;//2024948111; ld dotorad(ld K){ return PI * K / 180.0; } ld radtodo(ld K){ return K * 180.0 / PI; } mt19937 mt; void randinit(){ srand((unsigned)time(NULL));mt = mt19937(rand()); } int main(){ ll N; cin >> N; vector A(N); for(ll i = 0; i < N; i++){ cin >> A[i]; } ll s = 0; for(ll i = 0;i < N;i++) s ^= A[i]; ll p = 0; if(s == 0){ cout << "Second" << endl; p = 1; } else{ cout << "First" << endl; } while(1){ if(p == 1){ ll i,p; cin >> i >> p; i--; s ^= A[i]; A[i] -= p; s ^= A[i]; } else{ ll id = -1,x = MAX; for(ll i = 0;i < N;i++){ ll disired_nokori = (A[i] ^ s); if(disired_nokori < A[i]){ ll kesu = A[i] - disired_nokori; if(kesu < x){ x = kesu; id = i; } } } cout << id + 1 << " " << x << endl; A[id] -= x; s = 0; } ll ret; cin >> ret; if(ret != 0) return 0; p ^= 1; } }