func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<int> odd, even;   int main() {     int cnt1 = 0, cnt2 = 0, tem = -1;     int n, k, p, x;     scanf( %d%d%d , &n, &k, &p);     for (int i = 0; i < n; i++) {       scanf( %d , &x);       if (x % 2 == 0) {         cnt2++;         even.push_back(x);       } else {         if (cnt1 >= k - p) {           if (tem == -1)             tem = x;           else {             even.push_back(tem);             even.push_back(x);             cnt2++;             tem = -1;           }         } else {           cnt1++;           odd.push_back(x);         }       }     }     if (cnt1 < k - p || cnt2 < p || tem != -1)       printf( NO n );     else {       printf( YES n );       if (p == 0) {         for (int i = 0; i < k - p - 1; i++) printf( %d %d n , 1, odd[i]);         printf( %d , n - (k - p - 1));         for (int i = 0; i < even.size(); i++) printf(  %d , even[i]);         printf(  %d n , odd[k - p - 1]);         return 0;       }       for (int i = 0; i < k - p; i++) printf( %d %d n , 1, odd[i]);       int tem2 = 0, cur = 0;       while (tem2 < p - 1) {         if (even[cur] % 2 == 0) {           printf( %d %d n , 1, even[cur]);           cur++;         } else {           printf( %d %d %d n , 2, even[cur], even[cur + 1]);           cur++;           cur++;         }         tem2++;       }       if (even.size() > cur) printf( %d , even.size() - cur);       for (int i = cur; i < even.size(); i++) printf(  %d , even[i]);     }     return 0;   }   