#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const int N = 10003;
const long long oo = 1e18;
int get(int x, int l, int r) {
  if (x <= l) return l - x;
  if (r <= x) return x - r;
  return 0;
}
int l[N], r[N], zn[N];
long long d1[N], d2[N];
vector<int> st;
map<int, int> mp;
int main() {
  if (0) {
    freopen("input.txt", "w", stdout);
    return 0;
  }
  int i, u, n, m, x, li, ri, xp;
  long long tt, ans;
  scanf("%d%d", &n, &x);
  st.push_back(x);
  for (i = 0; i < n; ++i) {
    scanf("%d%d", &li, &ri);
    l[i] = li;
    r[i] = ri;
    st.push_back(li);
    st.push_back(ri);
  }
  sort(st.begin(), st.end());
  m = 0;
  for (i = 0; i < st.size(); ++i)
    if ((i + 1 == st.size()) || (st[i] != st[i + 1])) {
      zn[m] = st[i];
      mp[st[i]] = m++;
    }
  xp = mp[x];
  for (i = 0; i < m; ++i) d1[i] = oo;
  d1[xp] = 0;
  for (u = 0; u < n; ++u) {
    for (i = 0; i < m; ++i) d2[i] = oo;
    li = l[u];
    ri = r[u];
    tt = oo;
    for (i = 0; i < m; ++i) {
      if (i) tt += zn[i] - zn[i - 1];
      tt = min(tt, d1[i]);
      if (tt >= oo) {
        tt = oo;
        continue;
      }
      d2[i] = min(d2[i], tt + get(zn[i], li, ri));
    }
    tt = oo;
    for (i = m - 1; i >= 0; --i) {
      if (i != m - 1) tt += zn[i + 1] - zn[i];
      tt = min(tt, d1[i]);
      if (tt >= oo) {
        tt = oo;
        continue;
      }
      d2[i] = min(d2[i], tt + get(zn[i], li, ri));
    }
    for (i = 0; i < m; ++i) d1[i] = d2[i];
  }
  ans = oo;
  for (i = 0; i < m; ++i) ans = min(ans, d1[i]);
  cout << ans << endl;
  return 0;
}
