Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:256 MB

#12858. 序列变换

统计

题目描述

小W当前有一个正整数m和两个长度相等的序列:a = [a1, a2.... an] 和 b = [b1,b2....bn]。
现在,我们可以选择一个非负整数x,然后把所有的ai都加上x以后再模m(也就是我们要把ai变成((ai + x)mod m)。接下来,我们可以重新排列a序列,如果可以让a序列变成b序列,就是一次成功的变换。
这样的x有很多,我们需要找出最小的x。
例如,如果m = 3; a = [0, 0, 2, 1]; b = [2, 0, 1, 1],那么我们可以选择x = 1,这样a序列就变成
了[1,1, 0, 2],重排以后就可以变成b序列了。

输入格式

输入的第一行是两个正整数n和m,表示序列的长度和要模的数。
接下来一行有n个非负整数,表示a1,a2...... an。
接下来一行有n个非负整数,表示b1, b2...... bn。

输出格式

输出最小的非负整数x,使得a序列能够成功变成b序列。
数据保证一定存在这样的非负整数

样例数据1

input

4 3
0 0 2 1
2 0 1 1

output

1

样例数据2

input

3 2
0 0 0
1 1 1

output

1

样例数据3

input

5 10
0 0 0 1 2
2 1 0 0 0

output

0

只要加0就可以,因为其实只要直接重排就可以了。

数据范围

70%的数据,1 ≤ n ≤ 100; 1 ≤ m ≤ 100; 0 ≤ ai,bi < m。
100%的数据,1 ≤ n ≤ 2000; 1 ≤ m ≤ 10^9; 0 ≤ ai,bi < m。