#include <bits/stdc++.h>   using namespace std;   int main() {     ios_base::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     int n, k, p, x;     cin >> n >> k >> p;     std::vector<int> even, odd;     for (int i = 0; i < n; ++i) {       cin >> x;       if (x % 2)         odd.emplace_back(x);       else         even.emplace_back(x);     }     if (odd.size() < k - p || (odd.size() - k - p) % 2 != 0) {       cout <<  NO ;       return 0;     }     if ((even.size() + (odd.size() - (k - p)) / 2) < p) {       cout <<  NO  <<   n ;       return 0;     }     cout <<  YES  <<   n ;     long long cnt = 0;     if (k - p) {       while (even.size() > 0 && cnt != p) {         cout << 1 <<     << even.back() <<   n ;         even.pop_back();         cnt++;       }       while (odd.size() > 0 && cnt != p) {         cout << 2 <<     << odd.back() <<    ;         odd.pop_back();         cout << odd.back() <<   n ;         odd.pop_back();         cnt++;       }       for (int i = 0; i < k - p - 1; i++) {         vector<int> ans;         while (even.size() > 0) {           ans.emplace_back(even.back());           even.pop_back();         }         ans.emplace_back(odd.back());         odd.pop_back();         cout << ans.size() <<    ;         for (auto i : ans) {           cout << i <<    ;         }         cout <<   n ;       }       vector<int> ans;       while (odd.size() > 0) {         ans.emplace_back(odd.back());         odd.pop_back();       }       while (even.size() > 0) {         ans.emplace_back(even.back());         even.pop_back();       }       cout << ans.size() <<    ;       for (auto i : ans) {         cout << i <<    ;       }       cout <<   n ;     } else {       vector<int> ans;       for (int i = 0; i < p - 1; i++) {         if (even.size() > 0) {           cout << 1 <<     << even.back() <<   n ;           even.pop_back();         } else {           cout << 2 <<     << odd.back() <<    ;           odd.pop_back();           cout << odd.back() <<    ;           odd.pop_back();         }       }       while (even.size() > 0) {         ans.emplace_back(even.back());         even.pop_back();       }       while (odd.size()) {         ans.emplace_back(odd.back());         odd.pop_back();       }       cout << ans.size() <<    ;       for (auto I : ans) {         cout << I <<    ;       }     }   }   