#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vl; typedef pair pii; typedef pair pll; typedef int _loop_int; #define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i) #define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i) #define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i) #define DEBUG(x) cout<<#x<<": "< P; int n,l; int x[125252], y[125252]; int p[252521]; int sum[252521]; int main(){ scanf("%d%d",&n,&l); REP(i,n)scanf("%d",x+i); REP(i,n)scanf("%d",y+i); REP(i,n)p[i] = 2*x[i]+0; REP(i,n)p[i+n] = 2*y[i]+1; sort(p,p+n+n); REP(i,2*n)sum[i+1] = sum[i]+(p[i]%2==0 ? 1 : -1); int s=0, t=0; REP(i,2*n+1){ if(sum[i]>=sum[s])s=i; if(sum[i] -sum[t] || (sum[s]==-sum[t] && s>t)){ s--; int id = -1; FOR(i,s+1,2*n)if(p[i]%2==1){ id = i; break; } if(id==-1){ ans += l; REP(i,s)if(p[i]%2==1){ id = i; break; } } ans += p[id]/2; printf("%lld\n",ans); }else{ t--; ans += p[t]/2; printf("%lld\n",ans); } return 0; }