using System;

namespace ConsoleApp23
{
    class Program
    {
        static long AAA(long x, long y)
        {
            if (x == 0)
                return y;
            return AAA(y % x, x);
        }
        static long NZD(long[] a, int n)
        {
            long x = a[0];
            for (int i = 1; i < n; i++)
            {
                x = AAA(a[i], x);
                if (x == 1)
                {
                    return 1;
                }
            }
            return x;

        }
        static void Main(string[] args)
        {
            int t = int.Parse(Console.ReadLine());
            string s; int n = 0, m = 0;
            long[] tacne;
            long[] netacne;
            long[] tacne1;
            long[] netacne1;
            long nzd1; long nzd2;
            long[] moze = new long[t];
            long min1 = long.MaxValue; long min2 = long.MaxValue;
            long br = 0;

            for (int i = 0; i < t; i++)
            {
                s = Console.ReadLine();
                n = int.Parse(s.Substring(0, s.IndexOf(" ")));
                m = int.Parse(s.Substring(s.IndexOf(" ")));
                tacne = new long[n];
                netacne = new long[m];
                min1 = 0; min2 = 0;


                string[] q = Console.ReadLine().Split(' ');

                for (int j = 0; j < n; j++)
                {
                    tacne[j] = Convert.ToInt64(q[j]);
                    if (j == 0)
                    {
                        min1 = tacne[j];
                    }
                    min1 = Math.Min(tacne[j], min1);
                }

                string[] p = Console.ReadLine().Split(' ');
                for (int j = 0; j < m; j++)
                {
                    netacne[j] = Convert.ToInt64(p[j]);
                    if (j == 0)
                    {
                        min2 = netacne[j];
                    }
                    min2 = Math.Min(netacne[j], min2);
                }

                for (int j = 0; j < n; j++)
                {
                    if (tacne[j] != min1)
                    {
                        tacne[br] = tacne[j] - min1;
                        br++;
                    }
                }
                br = 0;
                for (int j = 0; j < m; j++)
                {
                    if (netacne[j] != min2)
                    {
                        netacne[br] = netacne[j] - min2;
                        br++;
                    }
                }
                br = 0;
                nzd1 = NZD(tacne, n - 1);
                nzd2 = NZD(netacne, m - 1);
                if (AAA(nzd1, nzd2) == 1 && nzd1 != 1)
                {
                    moze[i] = 1;
                }

            }
            for (int i = 0; i < t; i++)
            {
                Console.WriteLine(moze[i]);
            }
        }
    }
}