#include <bits/stdc++.h>
using namespace std;
vector<int> o;
vector<int> e;
int main() {
  int n, p, k;
  scanf("%d %d %d", &n, &k, &p);
  vector<vector<int> > sol(k);
  for (int i = 0; i < n; i++) {
    int x;
    scanf("%d", &x);
    if (x % 2 == 0)
      e.push_back(x);
    else
      o.push_back(x);
  }
  if (o.size() < (k - p) || (o.size() - (k - p)) % 2 != 0 ||
      (o.size() - (k - p)) / 2 + e.size() < p) {
    cout << "NO";
    return 0;
  }
  int p1 = 0, p2 = 0;
  int ind = 0;
  for (int i = 0; i < k - p; i++) sol[ind++].push_back(o[p1++]);
  for (int i = 0; i < ((e.size() > p) ? p : e.size()); i++)
    sol[ind++].push_back(e[p2++]);
  for (int i = ind; i < k; i++)
    sol[i].push_back(o[p1++]), sol[i].push_back(o[p1++]);
  for (int i = p1; i < o.size(); i++) sol[0].push_back(o[i]);
  for (int i = p2; i < e.size(); i++) sol[0].push_back(e[i]);
  printf("YES\n");
  for (int i = 0; i < k; i++) {
    printf("%d ", sol[i].size());
    for (int j = 0; j < sol[i].size(); j++) printf("%d ", sol[i][j]);
    printf("\n");
  }
  return 0;
}
