#include <bits/stdc++.h>
using namespace std;
long long N, K;
vector<pair<pair<long long, long long>, long long>> lrv;
vector<long long> ansv;
long long i, j, k;
int main() {
  scanf("%lld%lld", &N, &K);
  for (i = 0; i < N; i++) {
    long long l, r;
    scanf("%lld%lld", &l, &r);
    lrv.push_back({{l, r}, i + 1});
  }
  sort(lrv.begin(), lrv.end());
  set<pair<long long, long long>> st;
  for (i = 0; i < N; i++) {
    auto lr = lrv[i];
    while (st.size() > 0) {
      auto a = *st.begin();
      if (a.first >= lr.first.first) break;
      st.erase(st.begin());
    }
    st.insert({lr.first.second, lr.second});
    if (st.size() > K) {
      auto it = st.end();
      it--;
      ansv.push_back(it->second);
      st.erase(it);
    }
  }
  printf("%d\n", ansv.size());
  for (i = 0; i < ansv.size(); i++) {
    printf("%lld ", ansv[i]);
  }
  return 0;
}
