CF1269B Modulo Equality
Description
You are given a positive integer $ m $ and two integer sequence: $ a=[a_1, a_2, \ldots, a_n] $ and $ b=[b_1, b_2, \ldots, b_n] $ . Both of these sequence have a length $ n $ .
Permutation is a sequence of $ n $ different positive integers from $ 1 $ to $ n $ . For example, these sequences are permutations: $ [1] $ , $ [1,2] $ , $ [2,1] $ , $ [6,7,3,4,1,2,5] $ . These are not: $ [0] $ , $ [1,1] $ , $ [2,3] $ .
You need to find the non-negative integer $ x $ , and increase all elements of $ a_i $ by $ x $ , modulo $ m $ (i.e. you want to change $ a_i $ to $ (a_i + x) \bmod m $ ), so it would be possible to rearrange elements of $ a $ to make it equal $ b $ , among them you need to find the smallest possible $ x $ .
In other words, you need to find the smallest non-negative integer $ x $ , for which it is possible to find some permutation $ p=[p_1, p_2, \ldots, p_n] $ , such that for all $ 1 \leq i \leq n $ , $ (a_i + x) \bmod m = b_{p_i} $ , where $ y \bmod m $ — remainder of division of $ y $ by $ m $ .
For example, if $ m=3 $ , $ a = [0, 0, 2, 1], b = [2, 0, 1, 1] $ , you can choose $ x=1 $ , and $ a $ will be equal to $ [1, 1, 0, 2] $ and you can rearrange it to make it equal $ [2, 0, 1, 1] $ , which is equal to $ b $ .
Input Format
The first line contains two integers $ n,m $ ( $ 1 \leq n \leq 2000, 1 \leq m \leq 10^9 $ ): number of elemens in arrays and $ m $ .
The second line contains $ n $ integers $ a_1, a_2, \ldots, a_n $ ( $ 0 \leq a_i < m $ ).
The third line contains $ n $ integers $ b_1, b_2, \ldots, b_n $ ( $ 0 \leq b_i < m $ ).
It is guaranteed that there exists some non-negative integer $ x $ , such that it would be possible to find some permutation $ p_1, p_2, \ldots, p_n $ such that $ (a_i + x) \bmod m = b_{p_i} $ .
Output Format
Print one integer, the smallest non-negative integer $ x $ , such that it would be possible to find some permutation $ p_1, p_2, \ldots, p_n $ such that $ (a_i + x) \bmod m = b_{p_i} $ for all $ 1 \leq i \leq n $ .