You are a coach of a group consisting of $n$ students. The $i$-th student has programming skill $a_i$. All students have distinct programming skills. You want to divide them into teams in such a way that:  No two students $i$ and $j$ such that $|a_i - a_j| = 1$ belong to the same team (i.e. skills of each pair of students in the same team have the difference strictly greater than $1$);  the number of teams is the minimum possible. 

You have to answer $q$ independent queries.


-----Input-----

The first line of the input contains one integer $q$ ($1 \le q \le 100$) — the number of queries. Then $q$ queries follow.

The first line of the query contains one integer $n$ ($1 \le n \le 100$) — the number of students in the query. The second line of the query contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 100$, all $a_i$ are distinct), where $a_i$ is the programming skill of the $i$-th student.


-----Output-----

For each query, print the answer on it — the minimum number of teams you can form if no two students $i$ and $j$ such that $|a_i - a_j| = 1$ may belong to the same team (i.e. skills of each pair of students in the same team has the difference strictly greater than $1$)


-----Example-----
Input
4
4
2 10 1 20
2
3 6
5
2 3 4 99 100
1
42

Output
2
1
2
1



-----Note-----

In the first query of the example, there are $n=4$ students with the skills $a=[2, 10, 1, 20]$. There is only one restriction here: the $1$-st and the $3$-th students can't be in the same team (because of $|a_1 - a_3|=|2-1|=1$). It is possible to divide them into $2$ teams: for example, students $1$, $2$ and $4$ are in the first team and the student $3$ in the second team.

In the second query of the example, there are $n=2$ students with the skills $a=[3, 6]$. It is possible to compose just a single team containing both students.

Difficulty: introductory

Starter code:

Solutions:
for _ in range(int(input())):
    n = int(input())
    A = list(map(int, input().split()))
    A.sort()
    ans = 1
    for i in range(n - 1):
        if A[i] + 1 == A[i + 1]:
            ans = 2
            break
    print(ans)

q=int(input())
for i in range(q):
    n=int(input())
    a=sorted([int(x) for x in input().split()])
    for i in range(1,n):
        if a[i]==a[i-1]+1:
            print(2)
            break
    else:
        print(1)


for _ in range(int(input())):
    n = int(input())
    a = list(map(int, input().split()))
    a.sort()
    flag = False
    for i in range(1, n):
        if a[i] - a[i-1] == 1:
            flag = True
    if flag:
        print(2)
    else:
        print(1)

Q = int(input())

for q in range(Q):
    n = int(input())
    L = list(map(int, input().split()))
    L.sort()
    y = 0
    for i in range(1, n):
        if L[i] - L[i-1] == 1:
            y = 1
    if y == 1: print(2)
    else:
        print(1)

#    !/usr/bin/env python3
#    encoding: UTF-8
#    Last Modified: 22/Oct/2019 08:07:05 PM


import sys


def main():
    for tc in range(int(input())):
        n = int(input())
        arr = get_array()
        arr.sort()
        f = 0
        for i in range(1, n):
            if arr[i] == 1 + arr[i - 1]:
                f = 1
        if f == 1:
            print(2)
        else:
            print(1)


get_array = lambda: list(map(int, sys.stdin.readline().split()))


get_ints = lambda: list(map(int, sys.stdin.readline().split()))


input = lambda: sys.stdin.readline().strip()


def __starting_point():
    main()

__starting_point()

q = int(input())
for i in range(q):
    n = int(input())
    a = [int(x) for x in input().split()]
    a.sort()
    ans = 1
    for i in range(1, n):
        if a[i] - a[i - 1] == 1:
            ans = 2
    print(ans)

q = int(input())
for i in range(q):
    n = int(input())
    a = [int(i) for i in input().split()]
    a.sort()
    f = False
    for i in range(n - 1):
        if a[i] - a[i + 1] == -1:
            print(2)
            f = True
            break
    if not f:
        print(1)


from math import *
t = int(input())
for y in range(t):
    n = int(input())
    a = list(map(int,input().split()))
    flag = 0
    a.sort()
    for i in range(1,n):
        if a[i] - a[i-1] == 1:
            flag = 1
            break
    if(flag == 1):
        print(2)
    else:
        print(1)


#JMD
#Nagendra Jha-4096

 
import sys
import math

#import fractions
#import numpy
 
###File Operations###
fileoperation=0
if(fileoperation):
    orig_stdout = sys.stdout
    orig_stdin = sys.stdin
    inputfile = open('W:/Competitive Programming/input.txt', 'r')
    outputfile = open('W:/Competitive Programming/output.txt', 'w')
    sys.stdin = inputfile
    sys.stdout = outputfile

###Defines...###
mod=1000000007
 
###FUF's...###
def nospace(l):
    ans=''.join(str(i) for i in l)
    return ans
 
 
 
##### Main ####
t=int(input())
for tt in range(t):
    n=int(input())
    #n,k,s= map(int, sys.stdin.readline().split(' '))
    a=list(map(int,sys.stdin.readline().split(' ')))
    a.sort()
    ans=1
    for i in range(n-1):
        if(a[i]==a[i+1]-1):
            ans=2
            break
    print(ans)
    
    
#####File Operations#####
if(fileoperation):
    sys.stdout = orig_stdout
    sys.stdin = orig_stdin
    inputfile.close()
    outputfile.close()



for _ in range(int(input())):
	n=int(input())
	a=list(map(int,input().split(" ")))
	a=sorted(a)

	now=-1

	ans=1

	for i in a:
		if(abs(i-now)<=1):
			ans=2
			break
		now=i

	print(ans)

import sys
import math
# sys.stdin = open("in.txt")
for _ in range(int(input())):
    n = int(input())
    li = sorted(list(map(int, input().split())))
    was = 0
    for i in range(n - 1):
        if li[i + 1] - li[i] == 1:
            was = 1
    if was:
        print(2)
    else:
        print(1)


q = int(input())
for query in range(q):
    n = int(input())
    a = list(map(int, input().split(" ")))
    a = sorted(a)
    res = 1
    for i in range(n-1):
        if abs(a[i] - a[i+1]) == 1:
            res = 2
            break
    print(res)

q = int( input() )
for _ in range( q ):
    n = int( input() )
    a = list( map( int, input().split() ) )
    a.sort()
    f = 1
    for i in range( 1, n ):
        if a[ i - 1 ] + 1 == a[ i ]:
            f = 2
            break
    print( f )



def read():
    return list(map(int,input().split()))

q = int(input())
for test in range(q):
    n = int(input())
    a = read()
    a.sort()
    for i in range(n-1):
        if abs(a[i] - a[i+1]) == 1:
            print(2)
            break
    else:
        print(1)


t = int(input())
for _ in range(t):
    n = int(input())
    arr = sorted(list(map(int, input().split())))
    for i in range(n-1):
        if arr[i]+1 == arr[i+1]:
            print(2)
            break
    else:
        print(1)


t = int(input())
for _ in range(t):
    n = int(input())
    a = list(map(int, input().split()))
    a = sorted(a)
    flag = False
    for i in range(n-1):
        if a[i]+1 == a[i+1]:
            flag = True
    if flag:
        print(2)
    else:
        print(1)

for _ in range(int(input())):
    n = int(input())
    l = [int(i) for i in input().split()]
    l.sort()
    res = 1
    for i in range(n - 1):
        if (l[i] + 1 == l[i + 1]):
            res = 2
            break
    print(res)

q=int(input())
for i in range(q):
    n=int(input())
    a=list(map(int,input().split()))
    a.sort()
    t=False
    for i in range(1,n):
        if a[i]-1==a[i-1]:
            t=True
    if t:
        print(2)
    else:
        print(1)

q=int(input())
for i in range(q):
    n=int(input())
    l=list(map(int,input().split()))

    l.sort()
    flag=0
    for i in range(len(l)-1):
        if l[i+1]-l[i]==1:
            flag=1
            break
    if flag:
        print (2)
    else:
        print(1)

from bisect import *
from collections import *
from itertools import *
import functools
import sys
import math
from decimal import *
from copy import *
from heapq import *
from fractions import *
getcontext().prec = 30
MAX = sys.maxsize
MAXN = 1000010
MOD = 10**9+7
spf = [i for i in range(MAXN)]
def sieve():
    for i in range(2,MAXN,2):
        spf[i] = 2
    for i in range(3,int(MAXN**0.5)+1):
        if spf[i]==i:
            for j in range(i*i,MAXN,i):
                if spf[j]==j:
                    spf[j]=i
def fib(n,m):
    if n == 0:
        return [0, 1]
    else:
        a, b = fib(n // 2)
        c = ((a%m) * ((b%m) * 2 - (a%m)))%m
        d = ((a%m) * (a%m))%m + ((b)%m * (b)%m)%m
        if n % 2 == 0:
            return [c, d]
        else:
            return [d, c + d]

def charIN(x= ' '):
    return(sys.stdin.readline().strip().split(x))

def arrIN(x = ' '):
    return list(map(int,sys.stdin.readline().strip().split(x)))

def ncr(n,r):
    num=den=1
    for i in range(r):
        num = (num*(n-i))%MOD
        den = (den*(i+1))%MOD

    return (num*(pow(den,MOD-2,MOD)))%MOD

def flush():
    return sys.stdout.flush()

'''*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*'''
for _ in range(int(input())):
    n = int(input())
    a = arrIN()
    ans = 1
    a.sort()
    x = a[0]
    for i in range(1,n):
        if a[i]<=x+1:
            ans+=1
            break
        x = a[i]
    print(ans)

import sys
input = sys.stdin.readline

q = int(input())

for _ in range(q):
    n = int(input())
    a = list(map(int, input().split()))
    a.sort()
    
    for i in range(n-1):
        if a[i+1]-a[i] == 1:
            print(2)
            break
    else:
        print(1)


q = int(input())

for i in range(q):

    n = int(input())

    a = list(map(int,input().split()))
    a.sort()

    ans = 1
    for i in range(n-1):

        if a[i] + 1 == a[i+1]:
            ans = 2

    print (ans)