#include <bits/stdc++.h>
using namespace std;
int n, k, p;
int num[100005];
vector<int> even, odd, out[100005];
int main() {
  scanf("%d%d%d", &n, &k, &p);
  even.clear();
  odd.clear();
  int tmp;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &tmp);
    if (tmp & 1)
      odd.push_back(tmp);
    else
      even.push_back(tmp);
  }
  int e_, o_;
  e_ = p;
  o_ = k - p;
  if (o_ <= odd.size() && (odd.size() - o_) % 2 == 0 &&
      (even.size() + (odd.size() - o_) / 2) >= e_) {
    puts("YES");
    int now = 1;
    for (int i = 0; i < odd.size(); i++) {
      if (now > k) now = 1;
      if (i < o_) {
        out[now].push_back(odd[i]);
      } else {
        out[now].push_back(odd[i]);
        i++;
        out[now].push_back(odd[i]);
      }
      now++;
    }
    for (int i = 0; i < even.size(); i++) {
      if (now > k) now = 1;
      out[now].push_back(even[i]);
      now++;
    }
    for (int i = 1; i <= k; i++) {
      printf("%d ", out[i].size());
      for (int j = 0; j < out[i].size(); j++) {
        printf("%d ", out[i][j]);
      }
      puts("");
    }
  } else {
    puts("NO");
  }
  return 0;
}
