#include <bits/stdc++.h>
using namespace std;
long long n, k, p, e, o, x;
vector<long long> even, odd, part[100005];
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k >> p;
  for (long long i = 0; i < n; i++) {
    cin >> x;
    if (x % 2)
      odd.push_back(x);
    else
      even.push_back(x);
  }
  e = (long long)even.size();
  o = (long long)odd.size();
  if (o < k - p || e + (o - (k - p)) / 2 < p) return cout << "NO\n", 0;
  long long oidx = 0, eidx = 0;
  for (long long i = p; i < k; i++) part[i].push_back(odd[oidx++]);
  for (long long i = 0; i < p; i++) {
    if (eidx >= e)
      part[i].push_back(odd[oidx++]), part[i].push_back(odd[oidx++]);
    else
      part[i].push_back(even[eidx++]);
  }
  while (eidx < e) part[k - 1].push_back(even[eidx++]);
  if (oidx < o && (o - oidx) % 2)
    return cout << "NO\n", 0;
  else
    while (oidx < o) part[k - 1].push_back(odd[oidx++]);
  cout << "YES\n";
  for (long long i = 0; i < k; i++) {
    cout << (long long)part[i].size() << " ";
    for (auto j : part[i]) cout << j << " ";
    cout << endl;
  }
  return 0;
}
