#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:268435456")
using namespace std;
long long _gcd(long long a, long long b) {
  if (b == 0) return a;
  _gcd(b, a % b);
}
int n, k, p;
int a[100000];
int i, j, t, r, u, d, s;
bool mod_cmp(int x, int y) { return x % 2 > y % 2; }
int main() {
  cin >> n >> k >> p;
  u = k - p;
  for (i = 0, t = 0; i < n; ++i) {
    cin >> a[i];
    t += a[i] % 2;
  }
  d = (t - u) / 2;
  s = n - t;
  if (k <= n && t % 2 == u % 2 && t >= u && d + s >= p) {
    cout << "YES" << endl;
    sort(a, a + n, mod_cmp);
    for (j = 0; j < u && k > 1; ++j, --k) cout << "1 " << a[j] << endl;
    for (i = 0; i < d && k > 1; ++i, j += 2, --k)
      cout << "2 " << a[j] << ' ' << a[j + 1] << endl;
    for (i = 0; i < s - 1 && k > 1; ++i, ++j, --k) cout << "1 " << a[j] << endl;
    cout << n - j << " ";
    for (; j < n; ++j) cout << a[j] << " ";
  } else
    cout << "NO";
}
