#include<iostream>
#include<algorithm>
using namespace std;
int N,M;
int A[1000],B[1000],D[1000];
int dp[1000][1001];
int main()
{
	while(cin>>N>>M,N)
	{
		for(int i=0;i<N;i++)cin>>A[i];
		for(int i=0;i<N;i++)cin>>B[i];
		for(int i=0;i<N;i++)
		{
			D[i]=(B[i]-A[i]+M)%M;
		}
		dp[0][0]=D[0];
		for(int i=1;i<=N;i++)dp[0][i]=1e9;
		dp[0][1]=1e9;
		for(int i=1;i<N;i++)
		{
		    for(int j=0;j<=N;j++)dp[i][j]=1e9;
			for(int j=i;j>=0;j--)
			{
				if(D[i-1]>=D[i])
				{
					dp[i][j]=dp[i-1][j];
					if(j>0)
					{
						dp[i][j]=min(dp[i][j],dp[i-1][j-1]+M+D[i]-D[i-1]);
					}
				}
				else
				{
					dp[i][j]=min(dp[i-1][j+1],dp[i-1][j]+D[i]-D[i-1]);
				}
			}
		}
		int ans=1e9;
		for(int i=0;i<N;i++)ans=min(ans,dp[N-1][i]);
		cout<<ans<<endl;
	}
}

