#include using namespace std; using ll=long long; constexpr ll INF=(ll)(1e18)+1; bool chmin(ll&a,ll b){return a>b?a=b,true:false;} int K; ll N,A[10005],B[10005]; bool check(ll X){ vectorb; for(int i=K-1;i>=0;i--){ if(B[i]>=X)b.push_back(K-i); } if(b.size()==0)return N=X; int M=b[0]; vectordist(K+M,INF); vectorseen(K+M,false); for(int i=0;i=X)dist[i]=i; } for(int i=0;i=K)chmin(dist[K+(idx+j)%M],dist[idx]+j); }else{ chmin(dist[K+(idx-K+j)%M],dist[idx]+j); } } } if(N>K>>N; for(int i=0;i>A[i]; for(int i=0;i>B[i]; ll ok=-INF,ng=INF; while(ng-ok>1){ ll mid=(ok+ng)/2; if(check(mid))ok=mid; else ng=mid; } cout<