#include<bits/stdc++.h>
using namespace std;
int n,c;
long long f[55][55][2][2];
struct node{
int pos,w;
}a[55];
int main()
{
ios :: sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n>>c;
for(int i=1;i<=n;i++)
{
cin>>a[i].pos>>a[i].w;
}
for(int i=0;i<=n+1;i++)
{
for(int j=0;j<=n+1;j++)
{
for(int k=0;k<=1;k++)
{
for(int l=0;l<=1;l++)
{
f[i][j][k][l]=1300000;
}
}
}
}
f[c][c][1][0]=f[c][c][1][1]=f[c][c][0][0]=f[c][c][0][1]=0;
for(int k=1;k<n;k++)
{
for(int l=1;l+k-1<=n;l++)
{
int r=l+k-1;
if(f[l][r+1][1][1]>(f[l][r][1][0]+a[r+1].pos-a[r].pos)*a[r+1].w+f[l][r][1][1])
{
f[l][r+1][1][1]=(f[l][r][1][0]+a[r+1].pos-a[r].pos)*a[r+1].w+f[l][r][1][1];
f[l][r+1][1][0]=f[l][r][1][0]+a[r+1].pos-a[r].pos;
}
if(f[l][r+1][1][1]>(f[l][r][0][0]+a[r+1].pos-a[l].pos)*a[r+1].w+f[l][r][0][1])
{
f[l][r+1][1][1]=(f[l][r][0][0]+a[r+1].pos-a[l].pos)*a[r+1].w+f[l][r][0][1];
f[l][r+1][1][0]=f[l][r][0][0]+a[r+1].pos-a[l].pos;
}
if(f[l-1][r][0][1]>(f[l][r][0][0]+a[l].pos-a[l-1].pos)*a[l-1].w+f[l][r][0][1])
{
f[l-1][r][0][1]=(f[l][r][0][0]+a[l].pos-a[l-1].pos)*a[l-1].w+f[l][r][0][1];
f[l-1][r][0][0]=f[l][r][0][0]+a[l].pos-a[l-1].pos;
}
if(f[l-1][r][0][1]>(f[l][r][1][0]+a[r].pos-a[l-1].pos)*a[l-1].w+f[l][r][1][1])
{
f[l-1][r][0][1]=(f[l][r][1][0]+a[r].pos-a[l-1].pos)*a[l-1].w+f[l][r][1][1];
f[l-1][r][0][0]=f[l][r][1][0]+a[r].pos-a[l-1].pos;
}
}
}
cout<<min(f[1][n][0][1],f[1][n][1][1])<<"\n";
return 0;
}