#include <bits/stdc++.h>
using namespace std;
const int maxn = 3e5 + 10;
struct node {
  int r, l, id;
} a[maxn];
int cmp(node x, node y) { return x.l < y.l; }
int main() {
  int n, m, k;
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &a[i].l, &a[i].r);
    a[i].id = i + 1;
  }
  int ans = 0, L = 0;
  priority_queue<int, vector<int>, greater<int> > q;
  sort(a, a + n, cmp);
  for (int i = 0; i < n; i++) {
    q.push(a[i].r);
    if (q.size() > k) q.pop();
    int len = q.top() - a[i].l + 1;
    if (len > ans && q.size() == k) {
      ans = len;
      L = a[i].l;
    }
  }
  printf("%d\n", ans);
  if (ans == 0) {
    printf("1");
    for (int i = 2; i <= k; i++) printf(" %d", i);
  } else {
    for (int i = 0; i < n && k; i++) {
      if (L >= a[i].l && L + ans - 1 <= a[i].r) {
        if (k >= 1)
          printf("%d ", a[i].id);
        else
          printf("%d", a[i].id);
        k--;
      }
    }
  }
  printf("\n");
}
