#include <bits/stdc++.h>
using namespace std;
template <class Val>
struct BinaryIndexedTree {
  int n;
  vector<Val> t;
  BinaryIndexedTree() {}
  BinaryIndexedTree(int _n) : n(_n + 1), t(_n + 1) {}
  void add(int k, Val val) {
    k++;
    while (k < n) {
      t[k] += val;
      k += (k & -k);
    }
  }
  void set(int k, Val val) {
    add(k, -sum(k, k + 1));
    add(k, val);
  }
  Val sum(int k) {
    Val r = 0;
    while (k > 0) {
      r += t[k];
      k -= (k & -k);
    }
    return r;
  }
  Val sum(int l, int r) { return sum(r) - sum(l); }
};
vector<int> compress(vector<int> &u, vector<int> &v) {
  vector<int> a = u;
  for (int b : v) a.push_back(b);
  sort((a).begin(), (a).end());
  a.erase(unique((a).begin(), (a).end()), a.end());
  for (int &b : u) b = lower_bound((a).begin(), (a).end(), b) - a.begin();
  for (int &b : v) b = lower_bound((a).begin(), (a).end(), b) - a.begin();
  return a;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int N, K;
  cin >> N >> K;
  vector<int> L(N), R(N);
  for (int(i) = (0); (i) < (int)(N); ++(i)) cin >> L[i] >> R[i];
  vector<int> ori = compress(L, R);
  int M = (int)(ori).size();
  BinaryIndexedTree<int> sum(M);
  using tp = tuple<int, int, int>;
  vector<tp> lri(N);
  for (int(i) = (0); (i) < (int)(N); ++(i)) lri[i] = make_tuple(L[i], R[i], i);
  sort((lri).begin(), (lri).end());
  int ma = -1, lef = 0, rig = 0;
  for (int(i) = (0); (i) < (int)(N); ++(i)) {
    int l, r, k;
    tie(l, r, k) = lri[i];
    sum.add(r, 1);
    if (sum.sum(l, M) < K) continue;
    int ok = l, ng = M, mid;
    while (ng - ok > 1) {
      mid = (ok + ng) >> 1;
      (sum.sum(mid, M) >= K ? ok : ng) = mid;
    }
    int cnt = ori[ok] - ori[l] + 1;
    if (cnt > ma) {
      ma = cnt;
      lef = l, rig = ok;
    }
  }
  if (ma == -1) {
    cout << 0 << endl;
    for (int(i) = (0); (i) < (int)(K); ++(i))
      cout << i + 1 << (i != K - 1 ? ' ' : '\n');
    return 0;
  }
  vector<int> ans;
  int k = K;
  for (int(i) = (0); (i) < (int)(N); ++(i))
    if (k && L[i] <= lef && rig <= R[i]) {
      ans.push_back(i + 1);
      k--;
    }
  cout << ma << endl;
  for (int(i) = (0); (i) < (int)(K); ++(i))
    cout << ans[i] << (i != K - 1 ? ' ' : '\n');
}
