#include #include using namespace std; typedef long long LL; typedef pair PII; const int N = 2 * 100010, INF = 0x3f3f3f3f; int n, l; PII p[N]; int main() { // freopen("water.in", "r", stdin); // freopen("water.out", "w", stdout); scanf("%d%d", &n, &l); for (int i = 0; i < n; ++i) { scanf("%d", &p[i].first); p[i].second = 1; } for (int i = 0; i < n; ++i) { scanf("%d", &p[n + i].first); p[n + i].second = -1; } sort(p, p + 2 * n); LL ma = 0LL; int cur = 0, mi = INF, last = -1; for (int i = 0; i < 2 * n; ++i) { cur += p[i].second; if (cur >= ma) { ma = cur; last = i; } if (cur < mi) mi = cur; } int pos = (last + 1) % (2 * n); LL ans = 1LL * (ma - mi - (ma > 0 ? 1 : 0)) * l + p[pos].first; printf("%lld\n", ans); return 0; }