using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace test
{
    class Program
    {
        static ulong najmanjiDelilac(ulong a)
        {
            for (ulong i = 2; i < Math.Sqrt(a); i++)
            {
                if (a % i == 0)
                {
                    return i;
                }
            }
            return 1;
        }
        static void Main(string[] args)
        {
            int t = int.Parse(Console.ReadLine());
            int[] resenje = new int[t];
            for (int i = 0; i < t; i++)
            {
                string[] s = Console.ReadLine().Split();
                int n = int.Parse(s[0]);
                int m = int.Parse(s[1]);
                s = Console.ReadLine().Split();
                ulong[] prihvacene = new ulong[n];
                ulong[] odbijene = new ulong[m];
                for (int j = 0; j < n; j++)
                {
                    prihvacene[j] = ulong.Parse(s[j]);
                }
                Array.Sort(prihvacene);
                ulong razlika = 0;
                for (int j = 0; j < n - 1; j++)
                {
                    if (j == 0)
                    {
                        razlika = prihvacene[1] - prihvacene[0];
                    }
                    else
                    {
                        if ((prihvacene[j + 1] - prihvacene[j]) % razlika != 0)
                        {
                            bool dobro = false;
                            while (razlika != 1 || !dobro)
                            {
                                ulong a = najmanjiDelilac(razlika);
                                razlika = a;
                                if ((prihvacene[j + 1] - prihvacene[j]) % a == 0)
                                {
                                    dobro = true;
                                }
                            }
                            if (razlika == 1)
                            {
                                resenje[i] = 0;
                            }
                        }
                    }
                }
                s = Console.ReadLine().Split();
                for (int j = 0; j < m; j++)
                {
                    odbijene[j] = ulong.Parse(s[j]);
                }
                Array.Sort(odbijene);
                if (razlika != 1)
                {
                    for (int j = 0; j < m; j++)
                    {
                        if ((Math.Max(odbijene[j], prihvacene[0]) - Math.Min(prihvacene[0], odbijene[j])) % razlika == 0)
                        {
                            while (razlika != 1)
                            {
                                ulong a = najmanjiDelilac(razlika);
                                razlika = a;
                                if (Math.Max(odbijene[j], prihvacene[0]) - Math.Min(odbijene[j], prihvacene[0]) % razlika != 0)
                                {
                                    break;
                                }
                            }
                        }
                    }
                    if (razlika != 1)
                    {
                        resenje[i] = 1;
                    }
                    else
                    {
                        resenje[i] = 0;
                    }
                }
                else
                {
                    resenje[i] = 0;
                }
            }
            for (int i = 0; i < t; i++)
            {
                Console.WriteLine(resenje[i]);
            }
            // damjaaan
        }
    }
}