#include <bits/stdc++.h>
using namespace std;
struct kupon {
  int l;
  int h;
  int idx;
};
bool cmp1(kupon k1, kupon k2) { return k1.h < k2.h; }
bool cmp(kupon k1, kupon k2) { return k1.l < k2.l; }
int main() {
  int n, k;
  cin >> n >> k;
  vector<kupon> v(n);
  for (int i = 0; i < n; i++) {
    int a, b;
    cin >> a >> b;
    kupon k;
    k.l = a;
    k.h = b;
    k.idx = i + 1;
    v[i] = k;
  }
  sort(v.begin(), v.end(), cmp);
  vector<int> m(n);
  multiset<int> s;
  for (int i = 0; i < k; i++) s.insert(v[i].h);
  multiset<int>::iterator it = s.begin();
  m[k - 1] = *it;
  for (int i = k; i < n; i++) {
    s.insert(v[i].h);
    if (v[i].h >= m[i - 1]) it++;
    m[i] = *it;
  }
  int ans = 0;
  int best_i = -1;
  for (int i = k - 1; i < n; i++) {
    if (-v[i].l + m[i] + 1 > ans) {
      ans = (m[i] - v[i].l + 1);
      best_i = i;
    }
  }
  if (best_i == -1) {
    cout << 0 << endl;
    for (int i = 0; i < k; i++) cout << i + 1 << ' ';
    return 0;
  }
  cout << ans << endl;
  vector<kupon>::iterator it1 = v.begin();
  for (int i = 0; i < best_i; i++) it1++;
  sort(v.begin(), it1, cmp1);
  for (int i = 0; i < k; i++) {
    cout << v[best_i - i].idx << ' ';
  }
  return 0;
}
