#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k, p, q = 0;
  scanf("%d%d%d", &n, &k, &p);
  k -= p;
  vector<int> odd, even;
  for (int x, i = 0; i < n; i++) {
    scanf("%d", &x);
    if (x % 2 == 0)
      even.push_back(x);
    else
      odd.push_back(x);
  }
  int no_e = even.size(), no_o = odd.size();
  if (k <= no_o)
    no_o -= k;
  else {
    cout << "NO" << endl;
    return 0;
  }
  if (no_e >= p)
    no_e -= p;
  else if (no_o >= (p - no_e) * 2) {
    q = p - no_e;
    no_o -= (p - no_e) * 2;
    p = no_e;
    no_e = 0;
  } else {
    cout << "NO" << endl;
    return 0;
  }
  if (no_o % 2 == 1) {
    cout << "NO" << endl;
    return 0;
  }
  cout << "YES" << endl;
  int i = 0, j = 0;
  if (p || k)
    cout << no_e + no_o + 1 << " ";
  else
    cout << no_e + no_o + 2 << " ";
  while (no_o--) cout << odd[i++] << " ";
  while (no_e--) cout << even[j++] << " ";
  if (p) {
    p--;
    cout << even[j++] << endl;
  } else if (k) {
    k--;
    cout << odd[i++] << endl;
  } else {
    q--;
    cout << odd[i++] << " " << odd[i++] << endl;
  }
  while (q--) cout << 2 << " " << odd[i++] << " " << odd[i++] << endl;
  while (p--) cout << 1 << " " << even[j++] << endl;
  while (k--) cout << 1 << " " << odd[i++] << endl;
  return 0;
}
