#include <bits/stdc++.h>
using namespace std;
int n, k, x, y, z;
long long minn;
priority_queue<int> a, b, c;
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; ++i) {
    scanf("%d%d%d", &x, &y, &z);
    if (y && z)
      c.push(-x);
    else if (y)
      a.push(-x);
    else
      b.push(-x);
  }
  if (a.size() + c.size() < k || b.size() + c.size() < k) {
    puts("-1");
    return 0;
  }
  for (int i = 1; i <= k; ++i) {
    if (c.empty() || a.size() && b.size() && -a.top() - b.top() < -c.top()) {
      minn += -a.top() - b.top();
      a.pop();
      b.pop();
    } else {
      minn += -c.top();
      c.pop();
    }
  }
  printf("%lld", minn);
  return 0;
}
