Harryxun/stf_run huggingface dataset:
import sys
input=sys.stdin.readline
N=int(input())
A=list(map(int,input().split()))
A.sort()
Devide_N=10**9+7
Rem_2_32_DN=(2**32)%Devide_N

if N%2==1:
  if A[0]!=0 or A[1]==0:
    print(0)

  else:
    del A[0]
    for ch_n in range(1,(N-1)//2+1):
      if A[0]!=ch_n*2 or A[1]!=ch_n*2:
        break
      else:
        del A[0:2]
    else:
      #exp=(N-1)//2
      
      #exp_quotient_32=exp//32
      #exp_rem_32=exp%32
      #Rem_ans_Devide_N=1
      #for _ in range(exp_quotient_32):
      #  Rem_ans_Devide_N=(Rem_ans_Devide_N*Rem_2_32_DN)%Devide_N
        
      #print((Rem_ans_Devide_N*2**(exp_rem_32))%Devide_N)
      sys.exit()
    print(0)

else:
  for ch_n in range(1,N//2+1):
    if A[0]!=ch_n*2-1 or A[1]!=ch_n*2-1:
      break
    else:
      del A[0:2]
  else:
    #exp=N//2
    
    #exp_quotient_32=exp//32
    #exp_rem_32=exp%32
    #Rem_ans_Devide_N=1
    #for _ in range(exp_quotient_32):
    #  Rem_ans_Devide_N=(Rem_ans_Devide_N*Rem_2_32_DN)%Devide_N
      
    #print((Rem_ans_Devide_N*2**(exp_rem_32))%Devide_N)
    sys.exit()
  print(0)




### FIXED CODE ###

import sys
input=sys.stdin.readline
N=int(input())
A=list(map(int,input().split()))
A.sort()
Devide_N=10**9+7
Rem_2_32_DN=(2**32)%Devide_N

if N%2==1:
  if (A[0]!=0 or A[1]==0 if N>2 else A[0]!=0):
    print(0)

  else:
    del A[0]
    for ch_n in range(1,(N-1)//2+1):
      if A[0]!=ch_n*2 or A[1]!=ch_n*2:
        break
      else:
        del A[0:2]
    else:
      exp=(N-1)//2
      
      exp_quotient_32=exp//32
      exp_rem_32=exp%32
      Rem_ans_Devide_N=1
      for _ in range(exp_quotient_32):
        Rem_ans_Devide_N=(Rem_ans_Devide_N*Rem_2_32_DN)%Devide_N
        
      print((Rem_ans_Devide_N*2**(exp_rem_32))%Devide_N)
      sys.exit()
    print(0)

else:
  for ch_n in range(1,N//2+1):
    if A[0]!=ch_n*2-1 or A[1]!=ch_n*2-1:
      break
    else:
      del A[0:2]
  else:
    exp=N//2
    
    exp_quotient_32=exp//32
    exp_rem_32=exp%32
    Rem_ans_Devide_N=1
    for _ in range(exp_quotient_32):
      Rem_ans_Devide_N=(Rem_ans_Devide_N*Rem_2_32_DN)%Devide_N
      
    print((Rem_ans_Devide_N*2**(exp_rem_32))%Devide_N)
    sys.exit()
  print(0)
n = int(input())
values =list(map(int, input().split()))
a=1
 
for i in range(n):
  a=a*values[i]
  
import math
if math.log10(a) < 18:
  print(a)
else:
  print(-1)

### FIXED CODE ###

n = int(input())
values =list(map(int, input().split()))
a=1
t = 10**18
for i in range(n):
  if values[i] == 0:
    a = 0
    break
  if a > t:
    continue
  else:
    a=a*values[i]
 
if a <= t:
  print(a)
else:
  print(-1)
# coding: utf-8
# Your code here!

from datetime import datetime
K = int(input())
start = datetime.now()
def KSum(n):
    k = 0
    for i in str(n):
        k += int(i)
    return k

m = KSum(K)
j = 1
while((datetime.now()-start).total_seconds() < 1.8):
    for x in range(100):
	    P = KSum(K*j)
    	if m > P:
        	m = P
    	j += 1
print(m)


### FIXED CODE ###

from collections import deque
K=int(input())
reached=[0 for i in range(K)]
reached[1]=1
dist=[0 for i in range(K)]
q=deque([])
q.append(1)
while(len(q)>0):
    r=q.popleft()
    v=(r+1)%K
    reached[r]=1
    if (reached[v]==0):
        q.append(v)
        dist[v]=dist[r]+1
    v=(r*10)%K
    if (reached[v]==0):
        q.appendleft(v)
        dist[v]=dist[r]
    if (reached[0]==1):
        break
print(dist[0]+1)
import math
import sys
from bisect import bisect_left
from math import ceil, sqrt

q = int(sys.stdin.readline().rstrip())
lr = [list(map(int, sys.stdin.readline().rstrip().split())) for i in range(q)]


def era_prime(N):
    temp = [True]*(N+1)
    temp[0] = temp[1] = False
    for i in range(2, ceil(sqrt(N+1))):
        if temp[i]:
            temp[i+i::i] = [False]*(len(temp[i+i::i]))
    primes = [n for n in range(N+1) if temp[n]]
    return primes


primes = era_prime(100000)
post_primes = []
for pi in primes:
    if (pi + 1) // 2 in primes:
        post_primes.append(pi)


for lri in lr:
    l = bisect_left(post_primes, lri[0])
    r = bisect_left(post_primes, lri[1])
    ans = r - l
    # if post_primes[l] == post_primes[r] and post_primes[l] in lri:
    #     ans += 1
    if post_primes[r] in lri:
        ans += 1
    print(ans)

### FIXED CODE ###

def is_prime(n):
    if n == 1:
        return False
    for i in range(2,int(n**0.5)+1):
        if n % i == 0:
            return False
    return True
c=[0]
ci=0
for i in range(1,10**5+1):
  if is_prime(i) and is_prime((i+1)//2):
    ci+=1
  c.append(ci)
q=int(input())
lr=[list(map(int,input().split())) for _ in range(q)]
for lri in lr:
  print(c[lri[1]]-c[lri[0]-1])
def get():
    return list(map(int, input().split()))


a = get()
if a[0] < 10:
    print(a[1]+100(10 - a[0]))
else:
    print(a[1])


### FIXED CODE ###

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


a = get()
if a[0] < 10:
    print(a[1]+100*(10 - a[0]))
else:
    print(a[1])
s = input()
s = s.replace(s[0],'')
if len(s) == 0:
    print('No')
    break
else:
    s = s.replace(s[0],'')
if len(s) == 0:
    print('Yes')
else:
    print('No')

### FIXED CODE ###

import sys
s = input()
s = s.replace(s[0],'')
if len(s) == 0:
    print('No')
    sys.exit()
else:
    s = s.replace(s[0],'')
if len(s) == 0:
    print('Yes')
else:
    print('No')
lst=input().split()
lst=list(map(lambda i:int(i),lst))
x_1=lst[0]
x_2=lst[1]
y_1=lst[2]
y_2=lst[3]
dis=((x_1-x_2)**2+(y_1-y_2)**2)**(1/2)
print(dis)



### FIXED CODE ###

lst=input().split()
lst=list(map(lambda i:float(i),lst))
x_1=lst[0]
x_2=lst[1]
y_1=lst[2]
y_2=lst[3]
dis=((x_1-y_1)**2+(x_2-y_2)**2)**(1/2)
print(dis)
whatMan = []
 
N, K = input().split()
for i in range(int(K)):
    wahtMan.append(input().split())
print(wahtMan)

### FIXED CODE ###

whatMan = []

N, K = input().split()
for i in range(int(K)):
    input()
    whatMan.extend(input().split())
print(int(N) - len(set(whatMan)))
n,a,b=map(int,input())
print(min(n*a,b))

### FIXED CODE ###

n,a,b=map(int,input().split())
print(min(n*a,b))
a,b = int(input()),int(input())

if a + b >= 10:
  print("error")
else:
  print(a+b)

### FIXED CODE ###

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

if a + b >= 10:
  print("error")
else:
  print(a+b)
a,b,x=map(int,input().split())
a_p=a//x
b_p=b//x

if a%x==0:
    print(b_p-a_p+1)
else:
    print(b_p-a_p)

### FIXED CODE ###

a,b,c=input().split()
print(a[0]+b[0]+c[0])
H, W = map(int, input().split())
C_list = []
for _ in range(W):
    C_list.append(input())
    
for i in C_list:
    print(i)
    print(i)

### FIXED CODE ###

H, W = map(int, input().split())
c=[input() for _ in range(H)]
for _ in c:
    print(_ + "\n" + _)
N,C=map(int, input().split())

Z=[[] for _ in range(C+1)]
for _ in range(N):
	s,t,c = map(int, input().split())
	Z[c].append([s,t])

Y=[]
for z in [sorted(z) for z in Z if len(z) > 0]:
	for i in range(len(z)-1):
		if z[i][1] == z[i+1][0]:
			z[i+1][0] = z[i][0]
		else:
			Y.append(z[i])
	Y.append(z.pop())

X=[0 for _ in range(10**5+1)]
for s,t in Y:
	X[s] += 1
	X[t+1] -= 1

for i in range(1, 10**5+1):
	X[i] += X[i-1]

print(max(X))


### FIXED CODE ###

MAX = 114514

N,C=map(int, input().split())

Z=[[] for _ in range(C+1)]
for _ in range(N):
	s,t,c = map(int, input().split())
	Z[c].append([s,t])

Y=[]
for z in [sorted(z) for z in Z if len(z) > 0]:
	for i in range(len(z)-1):
		if z[i][1] == z[i+1][0]:
			z[i+1][0] = z[i][0]
		else:
			Y.append(z[i])
	Y.append(z.pop())

X=[0 for _ in range(MAX)]
for s,t in Y:
	X[s] += 1
	X[t+1] -= 1

for i in range(1, MAX):
	X[i] += X[i-1]

print(max(X))
if __name__ == '__main__':
    ken_num, city_num = list(map(int, input().split()))
    data = [list(map(int, input().split())).append(i) for i in range(city_num)]

    # ken_num, city_num = 2, 3
    # data = [[1,32,0], [2,63,1],[1,12,2]]

    data = sorted(data, key=lambda x: (x[0], x[1]))

    count = 1
    ken_num = 1
    ans_data = {}

    for i in range(city_num):
        number = data[i][2]
        if data[i][0] != ken_num:
            count = 1
            ken_num = data[i][0]
        chr = "{0:06d}".format(ken_num) + "{0:06d}".format(count)
        ans_data.update({number:chr})
        count += 1

    for i in range(city_num):
        print(ans_data[i])

### FIXED CODE ###


if __name__ == '__main__':
    ken_num, city_num = list(map(int, input().split()))
    data = []
    for i in range(city_num):
        element = list(map(int, input().split()))
        element.append(i)
        data.append(element)

    data = sorted(data, key=lambda x: (x[0], x[1]))

    count = 1
    ken_num = 1
    ans_data = {}

    for i in range(city_num):
        number = data[i][2]
        if data[i][0] != ken_num:
            count = 1
            ken_num = data[i][0]
        chr = "{0:06d}".format(ken_num) + "{0:06d}".format(count)
        ans_data.update({number:chr})
        count += 1

    for i in range(city_num):
        print(ans_data[i])
s = [input() for i in range(3)]
print(s[1][1] + s[2][2] + s[3][3])

### FIXED CODE ###

s = [input() for i in range(3)]
print(s[0][0] + s[1][1] + s[2][2])
import math
n = int(input())

if n == 1:
    print(1)
    exit()

# if n % 2 != 0:
#     n -= 1

h = math.log2(n)
h = math.floor(h)
print(2**(h+1)-1)

### FIXED CODE ###

import math
n = int(input())

if n == 1:
    print(1)
    exit()

# if n % 2 != 0:
#     n -= 1

h = math.log2(n)
h = math.floor(h)
print(2**(h+1)-1)
N,M=map(int,input().split())
AB=[list(map(int,input().split())) for i in range(M)]
c=[[] for i in range(N)]
for a,b in AB:
    c[a-1].append(b-1)
from collections import deque
def f2(q):
    s=set(q)
    for a,b in AB:
        if a in s and b in s:
            i=q.index(b)
            if q[i-1]!=a:
                break
    if a in s and q[i-1]!=a:
        q2=deque([a,b])
        while q[(i+1)%len(q)]!=a:
            q2.append(q[(i+1)%len(q)])
            i+=1
        f2(q2)
    print(len(q),*q,sep='\n')
    exit()
v=[0]*N
w=[0]*N
def f(p,v,q):
    v[p]=1
    w[p]=1
    q.append(p+1)
    for n in c[p]:
        if v[n]:
            f2(q)
        else:
            f(n,v,q)
    q.pop()
    v[p]=0
for p in range(N):
    if w[p]==0:
        f(p,v,deque())
print(-1)


### FIXED CODE ###

N,M=map(int,input().split())
AB=[list(map(int,input().split())) for i in range(M)]
c=[[] for i in range(N)]
for a,b in AB:
    c[a-1].append(b-1)
from collections import deque
import sys
sys.setrecursionlimit(10**9)
def f2(q):
    s=set(q)
    for a,b in AB:
        if a in s and b in s:
            i=q.index(b)
            if q[i-1]!=a:
                break
    if a in s and b in s and q[i-1]!=a:
        q2=deque([a,b])
        while q[(i+1)%len(q)]!=a:
            q2.append(q[(i+1)%len(q)])
            i+=1
        f2(q2)
    print(len(q),*q,sep='\n')
    exit()
v=[0]*N 
w=[0]*N
def f(p,v,q):
    v[p]=1
    w[p]=1
    q.append(p+1)
    for n in c[p]:
        if v[n]:
            f2(q)
        else:
            f(n,v,q)
    q.pop()
    v[p]=0
for p in range(N):
    if w[p]==0:
        f(p,v,deque())
print(-1)
N = int(input())
score = list(map(int, input().split()))
total = 0
 
score.sort(reverse=True)
for i in range(N):
  if score[i+1] == None:
    total += score[i]
  else:
    total += score[i]-score[i+1]
 
print(total

### FIXED CODE ###

N = int(input())
score = list(map(int, input().split()))
A = 0
B = 0
 
score.sort(reverse=True)
for i in range(N):
  if i % 2 == 0:
    A += score[i]
  else:
    B += score[i]

print(A-B)
S = input()
T = input()

if len(S) == len(T) - 1:
    Slis = list(S)
    Tlis = list(T)
    if str,islower(Tlis[ - 1]) == True:
        Tlis.remove(Tlis[ - 1])
        if Slis  ==Tlis:
            print('Yes')
        else:
            print('No')
            
    else:
        print('No')


else:
    print('No')

### FIXED CODE ###

S = input()
T = input()
 
Slis = list(S)
Tlis = list(T)
Tlis.pop(-1)
if len(S) == 0:
    print('No')
elif Slis  == Tlis:
    print('Yes')
else:
    print('No')
n = int(input())

cnt = 0
def search_divisor_num_1(num):
    if num < 0:
        return None
    elif num == 1:
        return 1
    else:
        num_sqrt = math.floor(math.sqrt(num))
        prime_list = make_prime_list_2(num_sqrt)

        divisor_num = 1
        for prime in prime_list:
            count = 1
            while num % prime == 0:
                num //= prime
                count += 1
            divisor_num *= count

        if num != 1:
            divisor_num *= 2

        return divisor_num

for i in range(n):
    if (i+1)%2==0 and search_divisor_num_1(i+1) == 8:
        cnt += 1

print(cnt)

### FIXED CODE ###

import math

n = int(input())

cnt = 0

def make_prime_list_2(num):
    if num < 2:
        return []

    # 0のものは素数じゃないとする
    prime_list = [i for i in range(num + 1)]
    prime_list[1] = 0 # 1は素数ではない
    num_sqrt = math.sqrt(num)

    for prime in prime_list:
        if prime == 0:
            continue
        if prime > num_sqrt:
            break

        for non_prime in range(2 * prime, num, prime):
            prime_list[non_prime] = 0

    return [prime for prime in prime_list if prime != 0]

def search_divisor_num_1(num):
    if num < 0:
        return None
    elif num == 1:
        return 1
    else:
        num_sqrt = math.floor(math.sqrt(num))
        prime_list = make_prime_list_2(num_sqrt)

        divisor_num = 1
        for prime in prime_list:
            count = 1
            while num % prime == 0:
                num //= prime
                count += 1
            divisor_num *= count

        if num != 1:
            divisor_num *= 2

        return divisor_num

for i in range(n+1):
    if i%2==1 and search_divisor_num_1(i) == 8:
        cnt += 1

print(cnt)
s = int(input())
print(s.replace("1", "9").replace("9", "1"))

### FIXED CODE ###

n = list(input())
ans = ""

for i in n:
  if i == "1":
    ans += "9"
  else:
    ans += "1"
    
print(ans)
from sympy import divisors

n=int(input())
lst=sorted(map(int,input().split()))

p=divisors(lst[0])
q=divisors(lst[1])
pq=set(p+q)
pq=sorted(pq)
for i in range(len(pq)-1,-1,-1):
    out=0
    for j in lst:
        if j%pq[i]!=0:
            out+=1
    if out<=1:
        print(pq[i])
        exit()

### FIXED CODE ###

def make_divisors(n):
    lower_divisors , upper_divisors = [], []
    i = 1
    while i*i <= n:
        if n % i == 0:
            lower_divisors.append(i)
            if i != n // i:
                upper_divisors.append(n//i)
        i += 1
    return lower_divisors + upper_divisors[::-1]

n=int(input())
lst=sorted(map(int,input().split()))

p=make_divisors(lst[0])
q=make_divisors(lst[1])
pq=set(p+q)
pq=sorted(pq)
for i in range(len(pq)-1,-1,-1):
    out=0
    for j in lst:
        if j%pq[i]!=0:
            out+=1
    if out<=1:
        print(pq[i])
        exit()
n,m = map(int, input().split())
a,b = [0]*m
for i in range(m):
    a[i],b[i] = map(int,input().split())
c = []
d = []
for i in range(m):
    
    if a[i] == 1:
        c.append(b[i])
    if b[i][1] == n:
        d.append(a[i])
ans = False
c = list(set(c))
for i in c:
    if d.count(i) >=1:
        ans = True
        break
if ans:
    print('POSSIBLE')
else:
    print('IMPOSSIBLE')

### FIXED CODE ###

n,m = map(int,input().split())
a = [0 for _ in range(m)]
b = [0 for _ in range(m)]

for i in range(m):
    a[i],b[i] = map(int,input().split())

go = []
goal = []

for i in range(len(a)):
    if a[i] == 1:
        go.append(b[i])
    if b[i] == n:
        goal.append(a[i])

count = [0 for i in range(n)]
for i in range(len(go)):
    count[go[i]-1] = 1
for i in range(len(goal)):
    count[goal[i]-1] += 1
for i in range(len(count)):
    if count[i] > 1:
        print("POSSIBLE")
        exit()
print("IMPOSSIBLE")
in = input()
for i in range(0,len(in)):
  if(in[i] == ' '):
    surface = int(in[:i])*int(in[i+1:])
    edge = (int(in[:i])+int(in[i+1:]))*2
    print(str(surface) + ' ' + str(edge))

### FIXED CODE ###

inputStr = input()
for i in range(0, len(inputStr)):
  if(inputStr[i] == ' '):
    surface = int(inputStr[:i]) * int(inputStr[i+1:])
    edge = (int(inputStr[:i]) + int(inputStr[i+1:])) * 2
    print(str(surface) + ' ' + str(edge))
# N個のロボット
N = int(input())

X = []
L = []
for n in range(N):
    x,l = map(int, input().split())
    X.append(x)
    L.append(l)
    
rem = 0
flg = False
for i in range(0, N-1):
    # アームの行動範囲
    if flg == True:
        flg = False
        continue
    if i !=0:
        rn = list(range(X[i]+L[i]-1, X[i]-L[i], -1 ))
        before = list(range(X[i-1]+L[i-1]-1, X[i-1]-L[i-1], -1 ))
        next = list(range(X[i+1]+L[i+1]-1, X[i+1]-L[i+1], -1 ))
        #print(rn)
        #print(before)
        #print(next)
        
        # アームの可動範囲が被る
        if len(set(rn) & set(before)) != 0 or len(set(rn) & set(next)) != 0:
            rem +=1
            flg = True
    else:
        rn = list(range(X[i]+L[i]-1, X[i]-L[i], -1 ))
        next = list(range(X[i+1]+L[i+1]-1, X[i+1]-L[i+1], -1 ))
        #print(rn)
        #print(next)
        # アームの可動範囲が被る
        if len(set(rn) & set(next)) != 0:
            rem +=1
            flg = True

print(N-rem)

### FIXED CODE ###

N = int(input())
robots = [tuple(map(int,input().split())) for _ in range(N)]

#print(robots)
# 最大値と最小値を計算する
robots = [(x+l,x-l) for x,l in robots]
#print(robots)
# ソートする
robots.sort()
#print(robots)

cnt = 0
last = -float('inf')
for r,l in robots:
    #print(last, l, r)
    # 1個前の最大値を、今回の最小値が上回っていたらOK
    if last <= l:
        cnt += 1
        # 次の最大値を更新する
        last = r

print(cnt)
A,B,C,X = [int(input() for i in range(4))]
count = 0

for a in range(A+1):
  for b in range(B+1):
    for c in range(C+1):
      x = 500*a + 100*b + 50*c
      if X == x:
        count += 1
 
print(count)

### FIXED CODE ###

A,B,C,X = [int(input()) for i in range(4)]
count = 0

for a in range(A+1):
  for b in range(B+1):
    for c in range(C+1):
      x = 500*a + 100*b + 50*c
      if X == x:
        count += 1
 
print(count)
import sys

sys.setrecursionlimit(10**7)
INF = 10 ** 18
MOD = 10 ** 9 + 7
def LI(): return list(map(int, sys.stdin.readline().split()))
def II(): return int(sys.stdin.readline())
def LS(): return list(map(list, sys.stdin.readline().split()))
def S(): return list(sys.stdin.readline())[:-1]

def main():
    n = II()
    print(n * (n - 1)　/ 2)

if __name__ == '__main__':
    main()

### FIXED CODE ###

import sys

sys.setrecursionlimit(10**7)
INF = 10 ** 18
MOD = 10 ** 9 + 7
def LI(): return list(map(int, sys.stdin.readline().split()))
def II(): return int(sys.stdin.readline())
def LS(): return list(map(list, sys.stdin.readline().split()))
def S(): return list(sys.stdin.readline())[:-1]

def main():
    n = II()
    print(n  * (n - 1) // 2)

if __name__ == '__main__':
    main()
a, b, c, = map(int(input().split()))
h = [5, 5, 7]
b = [a, b, c]

if sorted(h) == sorted(b):
    print("YES")
else:
    print("NO")


### FIXED CODE ###

a, b, c, = map(int, input().split())
h = [5, 5, 7]
b = [a, b, c]

if sorted(h) == sorted(b):
    print("YES")
else:
    print("NO")
#!/usr/bin/env python3
from functools import reduce

x, y = map(int, input().split())

mod = 10**9 + 7


def cmb(n, r, m):
    def mul(a, b):
        return a * b % m

    r = min(n - r, r)
    if r == 0:
        return 1
    over = reduce(mul, range(n, n - r, -1))
    under = reduce(mul, range(1, r + 1))
    return (over * pow(under, m - 2, m))%m


r = abs(x - y)
l = (min(x, y) - r) // 3
r += l
if l*2+r*1 in (x,y):
    print(cmb(r + l, r, mod))
else:
    print(0)


### FIXED CODE ###

#!/usr/bin/env python3
from functools import reduce

x, y = map(int, input().split())

mod = 10**9 + 7


def cmb(n, r, m):
    def mul(a, b):
        return a * b % m

    r = min(n - r, r)
    if r == 0:
        return 1
    over = reduce(mul, range(n, n - r, -1))
    under = reduce(mul, range(1, r + 1))
    return (over * pow(under, m - 2, m))%m


r = abs(x - y)
l = (min(x, y) - r) // 3
r += l
if l*2+r*1 in (x,y) and l >= 0:
    print(cmb(r + l, l, mod))
else:
    print(0)
W, H, x, y = map(int, input().split())
print(' '.join(str(W * H / 2.0), '1' if (W//2 == x) and (H//2 == y) else '0'))

### FIXED CODE ###

W, H, x, y = map(int, input().split())
print(' '.join((str(W * H / 2.0), '1' if (W/2 == x) and (H/2 == y) else '0')))
s = input()
print(0+count.s("+")-count.s("-"))

### FIXED CODE ###

s = input()
print(0+s.count("+")-s.count("-"))
from scipy.sparse import*
(n,m),*t=[map(int,t.split())for t in open(0)]
*b,a=zip(*[(i,j+n,1)for i,(_,*t)in enumerate(t)for j in t])
print('YNEOS'[1in csgraph.connected_components(csr_matrix((a,b),[n*3]*2))[1][:n]::2])

### FIXED CODE ###

from scipy.sparse import*
(n,m),*p=[map(int,t.split())for t in open(0)]
a,b,c=zip(*[(i,j+n-1,1)for i,q in enumerate(p)for j in list(q)[1:]])
print('YNEOS'[1in csgraph.connected_components(csr_matrix(((c,(a,b))),[n+m]*2))[1][:n]::2])
n=int(input())
a=list(map(int, input()))
print(max(a)-min(a))

### FIXED CODE ###

n=int(input())
a=list(map(int, input().split()))
print(max(a)-min(a))
lis = list(map(int, input().split())
if lis[0] => 13:
           return lis[1]
	elif lis[0]>5 and lis[0]<13:
           return lis[1]/2
	else:
           return 0

### FIXED CODE ###

lis = list(map(int,input().split()))
if lis[0] >= 13:
	print(lis[1])
elif lis[0] >= 6 and lis[0] <= 13:
	print(int(lis[1]/2))
else:
	print(0)
a,b,c = map(int,input().split())
if a=b and b=c:
  print(1)
elif a=b or b=c or a=c:
  print(2)
else:
  print(3)


### FIXED CODE ###

a,b,c = map(int,input().split())
if a==b and b==c:
  print(1)
elif a==b or b==c or a==c:
  print(2)
else:
  print(3)
import itertools as it
import sys

N, M = map(int, input().split())
if N==0 or M==0:
    print(0)
    sys.exit()
a=[]

for i in range(N):
    x,y=map(int,input().split())
    a.append([x,y])
    a.append([y,x])

ans=0
for e in it.permutations(range(N)):
    if e[0]!=0:
        break
        
    count=1
    for j in range(N-1):
        if [e[j]+1,e[j+1]+1] in a:
            count*=1
        else:
            count*=0
            break
            
    ans+=count

print(ans)

### FIXED CODE ###

import itertools as it
import sys

N, M = map(int, input().split())
if N==0 or M==0:
    print(0)
    sys.exit()
a=[]

for i in range(M):
    x,y=map(int,input().split())
    a.append([x,y])
    a.append([y,x])

ans=0
for e in it.permutations(range(N)):
    if e[0]!=0:
        break
        
    count=1
    for j in range(N-1):
        if [e[j]+1,e[j+1]+1] in a:
            count*=1
        else:
            count*=0
            break
            
    ans+=count

print(ans)
s=list(input())
t=list(input())
s.sort()
t.sort(reverse=True)
count=0
for i in range(len(s)):
    if s[i]==t[i]:
        count=1
        continue
    elif s[i]<t[i]:
        count=2
        break
    else:
        count=0
        break
if count==1:
    if len(s)<len(t):
        print('Yes')
    else:
        print('No')
elif count==2:
    print('Yes')
else:
    print('No')


### FIXED CODE ###

s=list(input())
t=list(input())
s.sort()
t.sort(reverse=True)

for i in range(min(len(s),len(t))):
    if s[i]==t[i]:
        count=1
        continue
    elif s[i]<t[i]:
        count=2
        break
    else:
        count=0
        break
if count==1:
    if len(s)<len(t):
        print('Yes')
    else:
        print('No')
elif count==2:
    print('Yes')
else:
    print('No')
N=int(input())
for i in range(N):
  x=int(input())
  if x=="Y":
    print("Four")
    break
else:
  print("Three")
  

### FIXED CODE ###

N=int(input())
ls=input().split()
for i in range(N):
  x=ls[i]
  if x=="Y":
    print("Four")
    break
else:
  print("Three")
a, b, c, d, e, f = input()
if c==d and e==f:
  print(Yes)
else:
  print(No)

### FIXED CODE ###

S = input()
if S[2]==S[3] and S[4]==S[5]:
  print('Yes')
else:
  print('No')