#include <iostream>
using namespace std;
int min(int i, int j){return (i<=j)?i:j;}
int main(void){
  for(;;){
    int n,m;
    cin >> n >> m;
    if(n==0 && m==0){return 0;}
    int a[n]; int b[n];
    for(int i=0;i<n;i++){cin >> a[i];}
    for(int i=0;i<n;i++){cin >> b[i];}
    
    int c[n];
    for(int i=0;i<n;i++){
      c[i]=(b[i]-a[i]>=0)?(b[i]-a[i]):(b[i]-a[i]+m);
    }
    
    int dp[2][n];
    for(int j=0;j<n;j++){
      dp[0][j]=c[0]+j*m;
    }
    
    for(int i=0;i<n-1;i++){
      for(int j=0;j<n;j++){
	if(c[i+1]>c[i]){
	  dp[1][j]=(j+1<n)?(min(dp[0][j]+c[i+1]-c[i],dp[0][j+1])):(dp[0][j]+c[i+1]-c[i]);
	}else{
	  dp[1][j]=(j-1>=0)?(min(dp[0][j-1]+m+c[i+1]-c[i],dp[0][j])):(dp[0][j]);
	}
      }

      for(int j=0;j<n;j++){
	dp[0][j]=dp[1][j];
      }
    }

    int ans=n*m;
    for(int j=0;j<n;j++){
      if(ans>dp[0][j]){
	ans=dp[0][j];
      }
    }

    cout << ans << endl;
  }
}
