using System;

namespace zalbe
{
    struct takmicar 
    {
        public long[] M;
        public long[] N;
        public long x;
        public int m;
        public int n;
        public bool dali;
    }
    class Program
    {
        static void Main(string[] args)
        {
            int t = int.Parse(Console.ReadLine());
            takmicar[] tak = new takmicar[t];
            for (int i = 0; i < t; i++)
            {
                string[] s = Console.ReadLine().Split();
                tak[i].n = int.Parse(s[0]);
                tak[i].m = int.Parse(s[1]);
                tak[i].N = new long[tak[i].n];
                tak[i].M = new long[tak[i].m];
                string[] NN = Console.ReadLine().Split();
                string[] MM = Console.ReadLine().Split();
                for (int j = 0; j < tak[i].n; j++)
                {
                    tak[i].N[j] = long.Parse(NN[j]);
                }
                for (int d = 0; d < tak[i].m; d++)
                {
                    tak[i].M[d] = long.Parse(MM[d]);
                }
                Array.Sort(tak[i].N);
                Array.Sort(tak[i].M);
            }
            for (int i = 0; i < t; i++)
            {
                tak[i].x = 0;
                tak[i].x = tak[i].N[1] - tak[i].N[0];
                for (int z = 0; z < tak[i].n-1; z++)
                {
                    if(tak[i].x > tak[i].N[z+1] - tak[i].N[z]) tak[i].x = tak[i].N[z+1] - tak[i].N[z];
        }
                if (tak[i].m > tak[i].n) 
                {
                    for (int s = 0; s < tak[i].m; s++)
                    {
                        
                        if (tak[i].n-1 > 0 )
                        {
                            tak[i].n--;
                            if ((tak[i].M[i] == tak[i].N[i]) ||((tak[i].M[i]- tak[i].N[1])% tak[i].x == 0))
                            {
                                tak[i].dali = false;
                                break;
                            }
                            else tak[i].dali = true;
                                if ((tak[i].N[s + 1] - tak[i].N[s] == tak[i].x) || ((tak[i].N[s + 1] - tak[i].N[s])% tak[i].x == 0)) tak[i].dali = true;
                                else
                                {
                                    tak[i].dali = false;
                                    break;
                                }
                        }
                    }
                }

                else 
                {
                    for (int b = 0; b < tak[i].n-1; b++)
                    {
                        if ((tak[i].N[b+1] - tak[i].N[b] == tak[i].x)|| ((tak[i].N[b + 1] - tak[i].N[b]) % tak[i].x == 0)) tak[i].dali = true;
                        else 
                        { 
                            tak[i].dali = false; 
                            break; 
                        }
                        if(tak[i].m > 0)
                        {
                            tak[i].m--;
                            if ((tak[i].M[i] == tak[i].N[i]) || ((tak[i].M[i] - tak[i].N[1]) % tak[i].x == 0))
                            {
                                tak[i].dali = false;
                                break;
                            }
                            else tak[i].dali = true;
                        }
                    } 
                }
                
            }
            for (int b = 0; b < t; b++)
            {
                Console.WriteLine(Convert.ToInt32(tak[b].dali));
            }

        }
    }
}
using System;

namespace zalbe
{
    struct takmicar 
    {
        public long[] M;
        public long[] N;
        public long x;
        public int m;
        public int n;
        public bool dali;
    }
    class Program
    {
        static void Main(string[] args)
        {
            int t = int.Parse(Console.ReadLine());
            takmicar[] tak = new takmicar[t];
            for (int i = 0; i < t; i++)
            {
                string[] s = Console.ReadLine().Split();
                tak[i].n = int.Parse(s[0]);
                tak[i].m = int.Parse(s[1]);
                tak[i].N = new long[tak[i].n];
                tak[i].M = new long[tak[i].m];
                string[] NN = Console.ReadLine().Split();
                string[] MM = Console.ReadLine().Split();
                for (int j = 0; j < tak[i].n; j++)
                {
                    tak[i].N[j] = long.Parse(NN[j]);
                }
                for (int d = 0; d < tak[i].m; d++)
                {
                    tak[i].M[d] = long.Parse(MM[d]);
                }
                Array.Sort(tak[i].N);
                Array.Sort(tak[i].M);
            }
            for (int i = 0; i < t; i++)
            {
                tak[i].x = 0;
                tak[i].x = tak[i].N[1] - tak[i].N[0];
                for (int z = 0; z < tak[i].n-1; z++)
                {
                    if(tak[i].x > tak[i].N[z+1] - tak[i].N[z]) tak[i].x = tak[i].N[z+1] - tak[i].N[z];
        }
                if (tak[i].m > tak[i].n) 
                {
                    for (int s = 0; s < tak[i].m; s++)
                    {
                        
                        if (tak[i].n-1 > 0 )
                        {
                            tak[i].n--;
                            if ((tak[i].M[i] == tak[i].N[i]) ||((tak[i].M[i]- tak[i].N[1])% tak[i].x == 0))
                            {
                                tak[i].dali = false;
                                break;
                            }
                            else tak[i].dali = true;
                                if ((tak[i].N[s + 1] - tak[i].N[s] == tak[i].x) || ((tak[i].N[s + 1] - tak[i].N[s])% tak[i].x == 0)) tak[i].dali = true;
                                else
                                {
                                    tak[i].dali = false;
                                    break;
                                }
                        }
                    }
                }

                else 
                {
                    for (int b = 0; b < tak[i].n-1; b++)
                    {
                        if ((tak[i].N[b+1] - tak[i].N[b] == tak[i].x)|| ((tak[i].N[b + 1] - tak[i].N[b]) % tak[i].x == 0)) tak[i].dali = true;
                        else 
                        { 
                            tak[i].dali = false; 
                            break; 
                        }
                        if(tak[i].m > 0)
                        {
                            tak[i].m--;
                            if ((tak[i].M[i] == tak[i].N[i]) || ((tak[i].M[i] - tak[i].N[1]) % tak[i].x == 0))
                            {
                                tak[i].dali = false;
                                break;
                            }
                            else tak[i].dali = true;
                        }
                    } 
                }
                
            }
            for (int b = 0; b < t; b++)
            {
                Console.WriteLine(Convert.ToInt32(tak[b].dali));
            }

        }
    }
}