#include <bits/stdc++.h>
#define ll long long
#define maxn 300005
#define pii pair <int, int>
#define fi first
#define se second
#define MOD 1022071997
#define int long long
using namespace std;
int n,par[maxn];
int a[maxn],b[maxn];
int cost[maxn],K;
int order[maxn],L[maxn],R[maxn];
int ans[maxn];
bool cmp(int x,int y){
return cost[x] < cost[y];
}
int find_par(int u){
return (u==par[u] ? u : par[u]=find_par(par[u]));
}
signed main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n>>K;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=n;i++) cin>>b[i];
for(int i=1;i<=n;i++){
if(b[i] > a[i]) cost[i]=b[i]-a[i];
else cost[i]=b[i]+K+1-a[i];
cout<<cost[i]<<' ';
par[i]=i;
R[i]=cost[i]; L[i]=cost[i];
ans[i]=cost[i];
}
cout<<'\n';
for(int i=1;i<=n;i++) order[i]=i;
sort(order+1,order+n+1,cmp);
for(int i=1;i<=n;i++){
int pos=order[i];
if(pos>1){
int pre=find_par(pos-1);
cout<<pos<<' '<<pre<<' '<<R[pre]<<'\n';
if(R[pre] < cost[pos]){
ans[pre]+=cost[pos]-R[pre];
}
else R[pre]=cost[pos];
par[pos]=pre;
}
if(pos+1<=n){
int nxt=find_par(pos+1);
if(L[nxt] < cost[pos]){
ans[nxt]+=cost[pos]-L[nxt];
}
else L[nxt]=cost[pos];
par[pos]=nxt;
}
}
int sum=0;
for(int i=1;i<=n;i++) {
if(find_par(i)==par[i]) {
sum+=ans[i];
//cout<<ans[i]<<' ';
}
}
cout<<sum;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbWF4biAzMDAwMDUKI2RlZmluZSBwaWkgcGFpciA8aW50LCBpbnQ+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNT0QgMTAyMjA3MTk5NwojZGVmaW5lIGludCBsb25nIGxvbmcKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbixwYXJbbWF4bl07CmludCBhW21heG5dLGJbbWF4bl07CmludCBjb3N0W21heG5dLEs7CmludCBvcmRlclttYXhuXSxMW21heG5dLFJbbWF4bl07CmludCBhbnNbbWF4bl07Cgpib29sIGNtcChpbnQgeCxpbnQgeSl7CiAgIHJldHVybiBjb3N0W3hdIDwgY29zdFt5XTsKfQoKaW50IGZpbmRfcGFyKGludCB1KXsKICAgcmV0dXJuICh1PT1wYXJbdV0gPyB1IDogcGFyW3VdPWZpbmRfcGFyKHBhclt1XSkpOwp9CgoKc2lnbmVkIG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKICAgIGNpbj4+bj4+SzsKICAgIGZvcihpbnQgaT0xO2k8PW47aSsrKSBjaW4+PmFbaV07CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykgY2luPj5iW2ldOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspewogICAgICAgIGlmKGJbaV0gPiBhW2ldKSBjb3N0W2ldPWJbaV0tYVtpXTsKICAgICAgICBlbHNlIGNvc3RbaV09YltpXStLKzEtYVtpXTsKICAgICAgICBjb3V0PDxjb3N0W2ldPDwnICc7CiAgICAgICAgcGFyW2ldPWk7CiAgICAgICAgUltpXT1jb3N0W2ldOyBMW2ldPWNvc3RbaV07CiAgICAgICAgYW5zW2ldPWNvc3RbaV07CiAgICB9CiAgICBjb3V0PDwnXG4nOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspIG9yZGVyW2ldPWk7CiAgICBzb3J0KG9yZGVyKzEsb3JkZXIrbisxLGNtcCk7CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKyl7CiAgICAgICAgaW50IHBvcz1vcmRlcltpXTsKICAgICAgICBpZihwb3M+MSl7CiAgICAgICAgICAgIGludCBwcmU9ZmluZF9wYXIocG9zLTEpOwogICAgICAgICAgICBjb3V0PDxwb3M8PCcgJzw8cHJlPDwnICc8PFJbcHJlXTw8J1xuJzsKICAgICAgICAgICAgaWYoUltwcmVdIDwgY29zdFtwb3NdKXsKICAgICAgICAgICAgICAgIGFuc1twcmVdKz1jb3N0W3Bvc10tUltwcmVdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgUltwcmVdPWNvc3RbcG9zXTsKICAgICAgICAgICAgcGFyW3Bvc109cHJlOwogICAgICAgIH0KICAgICAgICBpZihwb3MrMTw9bil7CiAgICAgICAgICAgIGludCBueHQ9ZmluZF9wYXIocG9zKzEpOwogICAgICAgICAgICBpZihMW254dF0gPCBjb3N0W3Bvc10pewogICAgICAgICAgICAgICAgYW5zW254dF0rPWNvc3RbcG9zXS1MW254dF07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBMW254dF09Y29zdFtwb3NdOwogICAgICAgICAgICBwYXJbcG9zXT1ueHQ7CiAgICAgICAgfQogICAgfQogICAgaW50IHN1bT0wOwogICAgZm9yKGludCBpPTE7aTw9bjtpKyspIHsKICAgICAgICBpZihmaW5kX3BhcihpKT09cGFyW2ldKSB7CiAgICAgICAgICAgIHN1bSs9YW5zW2ldOwogICAgICAgICAgICAvL2NvdXQ8PGFuc1tpXTw8JyAnOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQ8PHN1bTsKICAgIHJldHVybiAwOwp9Cgo=