using System;

namespace ConsoleApp5
{
    class Program
    {
        static long minimum(long[] a)//odredjujemo najmanju godinu
        {
            long min = long.MaxValue;
            for (int i = 0; i < a.GetLength(0); i++)
            {
                if (a[i] < min)
                    min = a[i];
            }
            return min;
        }
        static long nzd(long a, long b)//odredjujemo najveci zajednicki delilac za dva broja
        {
            while (a != 0 && b != 0)
            {
                if (a > b)
                    a = a % b;
                else
                    b = b % a;
            }
            if (a == 0)
                return b;
            else
                return a;
        }
        static void Main(string[] args)
        {
            const int N = 75000;
            const long max_god = 1000000000000000000;

            //ucitavamo broj takmicara
            int t = int.Parse(Console.ReadLine());
            int[] tacnost = new int[t];
            int t1 = t - 1;

            while (t != 0)
            {
                //ucitavamo n i m
                string[] s = Console.ReadLine().Split();
                int n = int.Parse(s[0]);
                if (n < 2 || n > N)
                    Console.WriteLine("Vrednost n nije uneta u granicama");
                int m = int.Parse(s[1]);
                if (m < 2 || m > N)
                    Console.WriteLine("Vrednost m nije uneta u granicama");

                //ucitavamo godine u kojima su prihvatili zalbe
                long[] a = new long[n];
                string[] r = Console.ReadLine().Split();
                for (int i = 0; i < n; i++)
                {  
                    a[i] = long.Parse(r[i]);
                    if (a[i] < 1 || a[i] > max_god)
                        Console.WriteLine("Vrednost godina nije uneta u granicama");
                }

                long mina = minimum(a);
                long tekuci = -1;
                for (int i = 0; i < n; i++)//racunamo najveci zajednicki delilac razlika godina i najmanje godine
                {
                    if (a[i] - mina == 0)
                    {
                        continue;
                    }
                    if (tekuci == -1)
                    {
                        tekuci = a[i] - mina;
                    }
                    else
                    {
                        tekuci = nzd(tekuci, a[i] - mina);
                    }
                }

                //ucitavamo godine u kojima nisu prihvacenje zalbe
                long[] b = new long[m];

                string[] q = Console.ReadLine().Split();
                for (int i = 0; i < m; i++)
                {

                    b[i] = long.Parse(q[i]);
                    if (b[i] < 1 || b[i] > max_god)
                        Console.WriteLine("Vrednost godina nije uneta u granicama");
                }

                int ok = 1;
                //racunamo da li ucenik govori istinu, tako sto gledamo da li je razlika godina i najmanje godine deljiva za nzd od godina u kojima je prihvacene zalbe
                for (int i = 0; i < m; i++)
                {
                    if (ok == 1)
                    {
                        long razlika = Math.Abs(b[i] - mina);
                        if (razlika % tekuci == 0)
                            ok = 0;
                    }
                }
                tacnost[t - 1] = ok;
                t--;
            }
            for (int i = t1; i >= 0; i--)
            {
                Console.WriteLine(tacnost[i]);
            }
        }
    }
}