using System;

namespace zalbe
{
    class Program
    {
        static void Main(string[] args)
        {
            int T = int.Parse(Console.ReadLine());
            int N;
            int M;
            int[] izlazi = new int[T];
            for (int brojTakmicara = 0; brojTakmicara < T; brojTakmicara++)
            {
                string[] ulazi = Console.ReadLine().Split();
                N = int.Parse(ulazi[0]);
                M = int.Parse(ulazi[1]);
                string[] prihvacene = Console.ReadLine().Split();
                ulong[] A = new ulong[N];
                for (int i = 0; i < N; i++)
                {
                    A[i] = ulong.Parse(prihvacene[i]);
                }

                string[] odbijene = Console.ReadLine().Split();
                ulong[] B = new ulong[M];
                for (int i = 0; i < M; i++)
                {
                    B[i] = ulong.Parse(odbijene[i]);
                }

                Array.Sort(A);
                ulong najmanjiA = A[0];
                for (int i = 0; i < A.Length; i++)
                {
                    A[i] -= najmanjiA;
                }
                ulong nzdA = NZDniza(A, N);
                if (nzdA == 1)
                {
                    izlazi[brojTakmicara] = 0;
                    continue;
                }
                bool zavrseno = false;
                Array.Sort(B);
                for (int i = 0; i < B.Length; i++)
                {
                    B[i] -= najmanjiA;
                    if (B[i] % nzdA == 0)
                    {
                        izlazi[brojTakmicara] = 0;
                        zavrseno = true;
                        break;
                    }
                }
                if (zavrseno == true) continue;
                izlazi[brojTakmicara] = 1;
            }
            for (int i = 0; i < T; i++)
            {
                Console.WriteLine(izlazi[i]);
            }
        }
        static ulong nadjiNZD(ulong a, ulong b)
        {
            if (a == 0) return b;
            return nadjiNZD(b % a, a);
        }
        static ulong NZDniza(ulong[] niz, int n)
        {
            ulong NZD = niz[0];
            for (int i = 0; i < n; i++)
            {
                NZD = nadjiNZD(niz[i], NZD);
                if (NZD == 1)
                {
                    return 1;
                }
            }
            return NZD;
        }
    }
}