func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   inline void read(T& x) {     bool fu = 0;     char c;     for (c = getchar(); c <= 32; c = getchar())       ;     if (c ==  - ) fu = 1, c = getchar();     for (x = 0; c > 32; c = getchar()) x = x * 10 + c -  0 ;     if (fu) x = -x;   };   template <class T>   inline void read(T& x, T& y) {     read(x);     read(y);   }   template <class T>   inline void read(T& x, T& y, T& z) {     read(x);     read(y);     read(z);   }   inline char getc() {     char c;     for (c = getchar(); c <= 32; c = getchar())       ;     return c;   }   int n, p, i, j, k, l, g, x;   int a[50010];   int pos[40], c[40];   long long len[1111];   char f[33][32][50010], f2[33][32][50010];   int v[11111];   long long pow(long long a, long long b, long long c) {     long long ans = 1;     for (a %= c; b; b >>= 1, a = a * a % c)       if (b & 1) ans = ans * a % c;     return ans;   }   void xx(char& x, char y) { x = min(10, x + y); }   int main() {     read(n, p);     for (i = 1; i <= n; i++) {       read(x);       if (x < 32) {         g++;         pos[g] = i;         c[g] = x;         for (len[g] = 1; len[g] <= c[g]; len[g] *= 10)           ;       }     }     f[0][0][0] = 1;     for (i = 0; i <= g - 1; i++)       for (j = 0; j <= 31; j++)         for (k = 0; k <= p - 1; k++)           if (f[i][j][k] > 0) {             xx(f[i + 1][j ^ c[i + 1]][(1LL * k * len[i + 1] + c[i + 1]) % p],                f[i][j][k]);             f2[i + 1][j ^ c[i + 1]][(1LL * k * len[i + 1] + c[i + 1]) % p] = 1;             xx(f[i + 1][j][k], f[i][j][k]);           }     if (f[g][0][0] < 2) {       printf( No n );       return 0;     }     printf( Yes n );     i = g;     j = 0;     k = 0;     while (i) {       if (f2[i][j][k]) v[++v[0]] = pos[i];       if (f2[i][j][k]) {         bool h = 0;         for (int j2 = (0); j2 <= (31); j2++) {           for (int k2 = (0); k2 <= (p - 1); k2++)             if (f[i - 1][j2][k2])               if ((j2 ^ c[i]) == j)                 if ((1LL * k2 * len[i] + c[i]) % p == k) {                   j = j2;                   k = k2;                   h = 1;                   break;                 }           if (h) break;         }       }       i--;     }     printf( %d n , v[0]);     for (i = v[0]; i >= 1; i--) printf( %d  , v[i]);     printf(  n );     return 0;   }   