#include<bits/stdc++.h>
using namespace std;
int n,c,gl,mp[5005];long long ans=9999999;
struct node{
int g;
bool k;
}deng[1000005];
void dfs(bool dt,int w,long long hao){
long long z,n=0;
while(!deng[w].k){w=w+dt*2-1;
if(w&&w<=mp[n])return;
for(int i=1;i<=n;i++) z+=deng[mp[i]].g*deng[mp[i]].k;
}deng[w].k=0;
dfs(1,w+1,hao+z);
dfs(0,w-1,hao+z);
for(int i=1;i<=n;i++)n+=deng[mp[i]].k;
if(!n)ans=min(ans,hao+z);
}
int main(){
cin>>n>>c;
for(int i=1;i<=n;i++){
scanf("%d%d",&mp[i],&gl);
deng[mp[i]].k=1,deng[mp[i]].g=gl;
}
dfs(1,c,0);
cout<<ans;
}