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

namespace _C_Zalbe
{
    public static class Class1
    {
        static void Main(string[] args)
        {
            //Stopwatch sw = new Stopwatch();
            long t, n, m;
            
            List<long> n1 = new List<long>();
            List<long> m1 = new List<long>();
            List<long> r = new List<long>();

            List<long> rez = new List<long>();

            t = long.Parse(Console.ReadLine());

            for (long i = 0; i < t; i++)
            {
                var ulaz = Console.ReadLine().Split();
                n = int.Parse(ulaz[0]);
                m = int.Parse(ulaz[1]);
                
                ulaz = Console.ReadLine().Split();
                for (int y = 0; y < n; y++)
                {
                    n1.Add(long.Parse(ulaz[y]));

                    if (y >= 1)
                    {
                        r.Add(Math.Abs(n1[y] - n1[y - 1]));
                    }
                }

                ulaz = Console.ReadLine().Split();
                for (int y = 0; y < m; y++)
                {
                    m1.Add(long.Parse(ulaz[y]));
                }
                
                //int l = 0;

                for (int k = 2; k <= r.Min(); k++)
                {
                    //
                    var nijeDeljiv = (
                        from x in r
                        where x % k != 0
                        select x
                    ).Any();
                    if (nijeDeljiv)
                    {
                        continue;
                    }
                    else//svi iz r su deljivi sa k
                    {
                        var brojZaProveru = n1[0] % k; //ostatak pri deljenju sa bilo kojim iz r
                        var postojiDeljiv = (
                            from x in m1
                            where x % k == brojZaProveru
                            select x
                        ).Any();

                        if (!postojiDeljiv)
                        {
                            rez.Add(1);
                            break;
                        }
                    }
                }

                if (rez.Count < i + 1)
                {
                    rez.Add(0);
                }

                n1.Clear();
                m1.Clear();
                r.Clear();
            }
            for (int o = 0; o < rez.Count; o++)
            {
                Console.WriteLine(rez[o]);
            }

            //Console.WriteLine(sw.ElapsedMilliseconds);
        }
    }
}