func_code_string: #include <bits/stdc++.h>   using namespace std;   typedef long long lli;   #define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);     #define pb push_back    #define int long long      int dp[201][20001];      int numSubseq(int n , vector<int>& a, int s , int pos1 = -2 , int pos2 = -2 )   {    if( n == pos1 || n == pos2 )      return numSubseq( n - 1 , a , s ) ;       if(n==-1)       {           if(s==0) return 1;           return 0;       }       if(s<0) return 0;       if(s==0) return 1;       if(dp[n][s]!=-1) return dp[n][s];       return dp[n][s] = numSubseq(n-1,a,s-a[n]) || numSubseq(n-1,a,s);   }      signed main()   {         memset(dp,-1,sizeof(dp));    int n , sum = 0 ;    cin >> n ;     vector<int> a(n) ;    for( auto &it : a )     cin >> it , sum += it ;        if( sum % 2 )     {     cout << 0 ;     return 0 ;    }     if( !numSubseq( n -1 , a , sum / 2 ) )    {     cout << 0;     return 0 ;    }       for( int i = 0 ; i< n ; i++ )     {     int target = sum - a[i] ;     if( target % 2 )      {      cout << 1 << endl;       cout << i + 1;       return 0 ;      }      if( !numSubseq(n-1,  a , target / 2 , i ) )     {      cout <<  1 << endl ;      cout << i + 1 << endl ;       return 0 ;     }    }          for( int i = 0 ; i < n; i++ )    {     for( int j = 0 ; j < n ; j++ )     {      if( i == j ) continue ;      int target = sum - a[i] - a[j] ;       if( target % 2 )       {       cout << 2 << endl ;       cout << i +1 <<     << j + 1 << endl ;       return 0 ;       }      if( !numSubseq(n-1, a , target / 2 , i , j ) )       {       cout << 2 << endl ;       cout << i + 1 <<     << j + 1 <<endl ;       return 0 ;      }     }    }   } 