#include <bits/stdc++.h>
using namespace std;
struct data {
  int g, c;
};
data par[200010];
int n, k, num;
bool b[200010];
long long ans = ~0uLL >> 1;
bool cmp1(data a, data b) { return a.g > b.g; }
bool cmp2(data a, data b) { return a.c < b.c; }
long long min(long long a, long long b) { return a < b ? a : b; }
long long doit(int x) {
  long long back = 0;
  memset(b, 0, sizeof(b));
  int tep = 0, tot = 0;
  for (int i = 1; i <= n; i++)
    if (par[i].g >= x - 1) tep++;
  tep -= k - 1;
  for (int i = 1; i <= n && tot < tep; i++) {
    if (par[i].g == x || par[i].g == x - 1) {
      b[i] = true;
      back = back + par[i].c;
      tot++;
    }
  }
  for (int i = 1; i <= n && tot < x; i++)
    if (b[i] == false) {
      back = back + par[i].c;
      tot++;
    }
  return back;
}
void insert() {
  sort(par + 1, par + 1 + n, cmp1);
  num = par[k].g;
  sort(par + 1, par + 1 + n, cmp2);
}
void init() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++) scanf("%d%d", &par[i].g, &par[i].c);
}
int main() {
  init();
  insert();
  for (int i = num; i <= num + 2; i++) {
    if (i > n) break;
    ans = min(ans, doit(i));
  }
  if (ans == ~0uLL >> 1)
    printf("-1\n");
  else
    printf("%I64d", ans);
}
