#include <bits/stdc++.h>

using namespace std;

int main()
{
    int pow3[16];
    pow3[0] = 1;
    for(int i = 1; i <= 15; i++)
    {
        pow3[i] = 3*pow3[i-1];
    }
    int n,m,k;
    int p,x,y;
    while(cin >> n >> m)
    {
        if((n == 0)&&(m == 0)) break;
        vector<int>v(n);
        for(int i = 0; i < 3; i++)
        {
            cin >> k;
            for(int j = 0; j < k; j++)
            {
                int tmp;
                cin >> tmp;
                v[n-tmp] = i;
            }
        }
        p = 0;
        x = 0;
        for(int i = n - 1; i >= 0; i--)
        {
            int d = abs(p-v[i]);
            x += pow3[i]*d;
            if(d == 1) p = 2-p;
        }
        y = pow3[n] - 1 -x;
        int ans = min(x,y);
        if(ans > m) cout << -1 << endl;
        else cout << ans << endl;
    }
    return 0;
}
