func_code_string: #include <bits/stdc++.h>   using namespace std;   bool endline = false;   template <class T>   istream& operator>>(istream& inp, vector<T>& v) {     for (auto& it : v) inp >> it;     return inp;   }   template <class T>   ostream& operator<<(ostream& out, vector<T>& v) {     for (auto& it : v) out << it << (endline ?   n  :    );     return out;   }   template <class T, class U>   istream& operator>>(istream& inp, pair<T, U>& v) {     inp >> v.first >> v.second;     return inp;   }   template <class T, class U>   ostream& operator<<(ostream& out, pair<T, U>& v) {     out << v.first <<     << v.second;     return out;   }   void debug() { cout << endl; }   template <typename H, typename... T>   void debug(H a, T... b) {     cout << a <<    ;     debug(b...);   }   void FAST_IO(string filein =   , string fileout =   ) {     if (fopen(filein.c_str(),  r )) {       freopen(filein.c_str(),  r , stdin);       freopen(fileout.c_str(),  w , stdout);     }     cin.tie(0), cout.tie(0)->sync_with_stdio(0);   }   void Hollwo_Pelw();   signed main() {     FAST_IO( .inp ,  .out );     int testcases = 1;     for (int test = 1; test <= testcases; test++) {       Hollwo_Pelw();     }     return 0;   }   const int allmod[3] = {(int)1e9 + 7, 998244353, (int)1e9 + 9};   const int mod = allmod[1];   const int MAXN = 1e6 + 6;   const int inf = 2e9;   const long long linf = 1e18;   long long n;   void dofirst() {     cout <<  First  << endl;     for (long long i = 1; i <= n; i++) cout << i <<    ;     for (long long i = 1; i <= n; i++) cout << i <<    ;     cout << endl;   }   vector<long long> pr[MAXN], adj[MAXN];   void addedge(long long u, long long v) {     adj[u].push_back(v), adj[v].push_back(u);   }   long long vis[MAXN];   void dfs(long long u, long long c) {     vis[u] = c;     for (auto v : adj[u])       if (!vis[v]) dfs(v, 3 - c);   }   void check(long long v) {     long long sum = 0;     for (long long i = 1; i <= 2 * n; i++)       if (vis[i] == v) sum += i;     if (sum % (2 * n) == 0) {       for (long long i = 1; i <= 2 * n; i++)         if (vis[i] == v) cout << i <<    ;       cout << endl;     }   }   void dosecond() {     cout <<  Second  << endl;     for (long long i = 1, p; i <= 2 * n; i++) cin >> p, pr[p].push_back(i);     for (long long i = 1; i <= n; i++)       addedge(pr[i][0], pr[i][1]), addedge(i, i + n);     for (long long i = 1; i <= 2 * n; i++)       if (!vis[i]) dfs(i, 1);     check(1);     check(2);   }   void getverdict() {     long long x;     cin >> x;     if (!x) exit(0);   }   void Hollwo_Pelw() {     cin >> n;     if (n % 2 == 0) {       dofirst();     } else {       dosecond();     }     getverdict();   }   