#include <bits/stdc++.h>
using namespace std;
int n, m;
pair<pair<int, int>, int> a[333333];
priority_queue<pair<int, int> > q;
int ans;
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &a[i].first.first, &a[i].first.second);
    a[i].second = i + 1;
  }
  sort(a, a + n);
  ans = -1;
  for (int i = 0; i < n; i++) {
    while (!q.empty() && -q.top().first < a[i].first.first) q.pop();
    q.push(make_pair(-a[i].first.second, a[i].second));
    if (q.size() >= m) {
      ans = max(ans, -q.top().first - a[i].first.first);
      q.pop();
    }
  }
  while (!q.empty()) q.pop();
  printf("%d\n", ans + 1);
  if (ans < 0) {
    for (int i = 0; i < m; i++) printf("%d%c", i + 1, i < m - 1 ? ' ' : '\n');
  } else {
    for (int i = 0; i < n; i++) {
      while (!q.empty() && -q.top().first < a[i].first.first) q.pop();
      q.push(make_pair(-a[i].first.second, a[i].second));
      if (q.size() >= m) {
        if (-q.top().first - a[i].first.first == ans) {
          vector<int> v;
          v.clear();
          while (!q.empty()) {
            v.push_back(q.top().second);
            q.pop();
          }
          sort(v.begin(), v.end());
          for (int j = 0; j < m; j++)
            printf("%d%c", v[j], j < m - 1 ? ' ' : '\n');
          return 0;
        }
        q.pop();
      }
    }
  }
  return 0;
}
