func_code_string: # include <bits/stdc++.h>   # define int long long   using namespace std;   const int N=505;   const int mo=998244353;   int a[2*N][N],b[N][N];   bool f[2*N];   int Pow(int x,int n) {       int ans=1;       while (n) {           if (n&1) ans=ans*x%mo;           x=x*x%mo;           n>>=1;       }       return ans;   }   vector<int>an;   signed main() {       int t; scanf( %lld ,&t);       while (t--) {           an.clear();           long long ans=1ll;           int n; scanf( %lld ,&n);           for (int i=1;i<=2*n;i++)               for (int j=1;j<=n;j++)                   scanf( %lld ,&a[i][j]);           int tot=0;           for (int i=1;i<=2*n;i++) f[i]=false;                 while (true) {               for (int i=1;i<=n;i++)                   for (int j=1;j<=n;j++)                       b[i][j]=0;               for (int i=1;i<=2*n;i++) if (!f[i]) {                       for (int j=1;j<=n;j++)                           b[j][a[i][j]]++;                   }                        bool cc; int uniq;               for (int i=1;i<=2*n;i++) if (!f[i]) {                       cc=false;                       for (int j=1;j<=n;j++) if (b[j][a[i][j]]==1) {                               cc=true; uniq=i; break;                           }                       if (cc) break;                   }                  if (cc)               {                   an.push_back(uniq);               }               else {                   for (int i=1;i<=2*n;i++) if (!f[i]) {                           uniq=i; break;                       }                   an.push_back(uniq);                   ans=ans*2ll%mo;               }               for (int i=1;i<=2*n;i++) if (!f[i]) {                       bool flag=true;                       for (int j=1;j<=n;j++) if (a[i][j]==a[uniq][j]) {                               flag=false; break;                           }                       if (!flag) f[i]=true;                   }               if (an.size()==n) break;           }           printf( %lld n ,ans);           for (int i=0;i<an.size();i++) printf( %lld  ,an[i]);           puts(  );       }       return 0;   } 