#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7, siz = 1e6 + 5;
long long t, n, m, k, en[siz], a[siz];
pair<long long, long long> p[siz];
bool gone[siz];
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  for (long long i = 0; i < n; i++) {
    long long l, r;
    cin >> l >> r;
    en[i + 1] = r;
    p[2 * i].first = l;
    p[2 * i + 1].first = r;
    p[2 * i].second = -(i + 1);
    p[2 * i + 1].second = i + 1;
  }
  sort(p, p + 2 * n);
  long long have = 0;
  vector<long long> del;
  set<pair<long long, long long>, greater<pair<long long, long long> > > s;
  for (long long i = 0; i < 2 * n; i++) {
    long long ind = abs(p[i].second);
    if (p[i].second > 0) {
      if (!gone[ind]) {
        have--;
        s.erase({en[ind], ind});
      }
    } else {
      have++;
      s.insert({en[ind], ind});
      if (have > k) {
        pair<long long, long long> p = *s.begin();
        s.erase(s.begin());
        gone[p.second] = 1;
        del.push_back(p.second);
        have--;
      }
    }
  }
  cout << del.size() << endl;
  for (auto x : del) cout << x << " ";
}
