        #include <bits/stdc++.h>
        using namespace std;
        //#include <ext/pb_ds/assoc_container.hpp> // Include for built in treap
        //#include <ext/pb_ds/tree_policy.hpp>
        //using namespace __gnu_pbds;
        const int MOD = 1e9 + 7;
        #define ll long long int
        #define pii pair<int, int>
        #define pll pair<ll, ll>
        #define pb push_back
        #define eb emplace_back
        #define in insert
        #define ff first
        #define ss second
        #define vi vector<int>
        #define vl vector<ll>
        #define vpii vector<pii>
        #define vpll vector<pll>
        #define si set<int>
        #define mpii map<int, int>
        #define prq priority_queue
        #define sz(s) (int) s.size()
        #define pf(a) printf("%d ",a)
        #define si1(a) scanf("%d",&a)
        #define si2(a,b) scanf("%d%d",&a,&b)
        #define si3(a,b,c) scanf("%d%d%d",&a,&b,&c)
        //#define scan(v) for(int i = 0; i<n; i++){int x;cin>>x;v.pb(x);}
        #define pi 2 * acos (0.0)
        #define inf 1e9
        #define co cout
        #define en '\n'
        #define re return
        #define con continue
        #define dbg cout<<"___________ok____________"<<endl;
        #define yes() printf("YES\n");
        #define no() puts("NO");
        #define FOR(i, j, k) for(int i=(j); i<(k); i++)
        #define REV(i, j, k) for(int i=(n-1); i>=k; i--)
        #define all(v) v.begin(), v.end()
        #define rnd(a, b) ((((rand()<<15)^rand())%((b)-(a) + 1))+(a))
        #define FAST_IO ios_base::sync_with_stdio(false),cin.tie(NULL)
        #define mem(x, y) memset(x, y, sizeof(x))
        #define prn(v) for(auto x: v)cout<<x<<" ";
        //typedef tree <int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pb_ds;
        const double EPS = 1e-9;
        const int MXX = 2e5 + 5;
         
        ll a[2005], b[2005], c[2005];
        int main()
        {
         
            FAST_IO;
            ll n, m;cin>>n>>m;
            ll mxp = -1;
            for(ll i = 0; i<n; i++)cin>>a[i];
            for(ll i = 0; i<n; i++)cin>>b[i], mxp=max(mxp, b[i]),c[i] = b[i];
            sort(c, c + n);
            for(ll i = 0; i<=1e5; i++)
            {
                vector<ll>v;
                for(ll j = 0; j<n; j++)
                {
                    v.pb((a[j] + i)%m);
                }
                sort(all(v));
              // if(i == 1) prn(v);re 0;
                bool f = 1;
                for(ll j = 0; j<n; j++)
                {
                    if(c[j]!=v[j])
                    {
                        f = 0;break;
                    }
                }
                if(f)return cout<<i<<endl, 0;
            }
            return 0;
        }