#include <bits/stdc++.h>
using namespace std;
vector<int> parts[100005], nums[2];
int main() {
  int i, n, k, p, oc, num;
  cin >> n >> k >> p;
  for (i = 0; i < n; i++) {
    cin >> num;
    nums[num % 2].push_back(num);
  }
  oc = k - p;
  if (nums[1].size() < oc) {
    cout << "NO";
    return 0;
  }
  for (i = 0; i < oc; i++)
    parts[i].push_back(nums[1].back()), nums[1].pop_back();
  if (nums[1].size() % 2 || (nums[1].size() / 2 + nums[0].size()) < p) {
    cout << "NO";
    return 0;
  }
  for (i = oc; i < k; i++) {
    if (nums[1].size()) {
      parts[i].push_back(nums[1].back()), nums[1].pop_back();
      parts[i].push_back(nums[1].back()), nums[1].pop_back();
    } else
      parts[i].push_back(nums[0].back()), nums[0].pop_back();
  }
  while (nums[0].size())
    parts[k - 1].push_back(nums[0].back()), nums[0].pop_back();
  while (nums[1].size())
    parts[k - 1].push_back(nums[1].back()), nums[1].pop_back();
  cout << "YES" << endl;
  for (i = 0; i < k; i++) {
    cout << parts[i].size();
    for (p = 0; p < parts[i].size(); p++) cout << " " << parts[i][p];
    cout << endl;
  }
  return 0;
}
