func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 100005;   vector<int> c[2];   int main() {     int n, k, p, x, m1 = 0, m2 = 0;     scanf( %d%d%d , &n, &k, &p);     for (int i = 0; i < n; ++i) {       scanf( %d , &x);       if (x & 1) {         c[0].push_back(x);         m1++;       } else {         c[1].push_back(x);         m2++;       }     }     if (m1 >= k - p && (m1 - (k - p)) % 2 == 0 &&         (m2 + (m1 - (k - p)) / 2) >= p) {       puts( YES );       int i, j;       if (p > 0) {         for (i = 0; i < k - p; i++) printf( 1 %d n , c[0][i]);         for (j = 0; j < p - 1;) {           if (j < m2) {             printf( 1 %d n , c[1][j]);             j++;           } else {             printf( 2 %d %d n , c[0][i], c[0][i + 1]);             i += 2;             p--;           }         }         if (m1 - i + m2 - j > 0) {           printf( %d , m1 - i + m2 - j);           for (; j < m2; j++) printf(  %d , c[1][j]);           for (; i < m1; i++) printf(  %d , c[0][i]);           putchar(  n );         }       } else {         for (i = 0; i < k - 1; i++) printf( 1 %d n , c[0][i]);         if (m1 - i + m2 > 0) {           printf( %d , m1 - i + m2);           for (; i < m1; i++) printf(  %d , c[0][i]);           for (j = 0; j < m2; j++) printf(  %d , c[1][j]);           putchar(  n );         }       }     } else {       puts( NO );     }     return 0;   }   