#include using namespace std; typedef long long ll; #define pb push_back #define fi first #define se second typedef pair P; using VP = vector

; using VVP = vector; using VI = vector; using VVI = vector; using VVVI = vector; const int inf=1e9+7; const ll INF=1LL<<60; const ll mod=1e9+7; template inline bool chmax(T &a, T b) { if(a < b) { a = b; return true; } return false; } template inline bool chmin(T &a, T b) { if(a > b) { a = b; return true; } return false; } int main(){ int i,j; int n,m; cin>>n>>m; int zure=100000; VI a(n+2*zure,INF+INF); vector

v; for(i=zure;i>a[i]; for(i=0;i>x>>w; x--; x+=zure; v.pb(P(x,w)); } ll l=-1; ll r=INF; while(r-l>1){ VI q(n+2*zure,0); bool ng=0; ll m=l+(r-l)/2; if(m!=0){ for(i=0;i=a[i]){ ng=1; break; } } } else{ ll h=0; for(i=0;i=a[i]){ ng=1; break; } } } if(ng) l=m; else r=m; } if(r==INF){ cout<<-1<