In mathematics, the Pythagorean theorem — is a relation in Euclidean geometry among the three sides of a right-angled triangle. In terms of areas, it states:

 In any right-angled triangle, the area of the square whose side is the hypotenuse (the side opposite the right angle) is equal to the sum of the areas of the squares whose sides are the two legs (the two sides that meet at a right angle). 

The theorem can be written as an equation relating the lengths of the sides a, b and c, often called the Pythagorean equation:

a^2 + b^2 = c^2

where c represents the length of the hypotenuse, and a and b represent the lengths of the other two sides.

 [Image] 

Given n, your task is to count how many right-angled triangles with side-lengths a, b and c that satisfied an inequality 1 ≤ a ≤ b ≤ c ≤ n.


-----Input-----

The only line contains one integer n (1 ≤ n ≤ 10^4) as we mentioned above.


-----Output-----

Print a single integer — the answer to the problem.


-----Examples-----
Input
5

Output
1

Input
74

Output
35

Source: codeforces | Difficulty: EASY
Tags: Mathematics

Complete search


Solutions:
from math import sqrt
from fractions import gcd

def main():
	(limit, res) = (int(input()), 0)
	for m in range(2, int(sqrt(limit)) + 1):
		mm = m * m
		for n in range(1 + (m & 1), m, 2):
			nn = n * n
			c = mm + nn
			if c > limit:
				break
			if gcd(mm - nn, c) == 1:
				res += limit // c
	print(res)
main()


import math

def ni():
	return int(input())

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

def nextLine():
	return input()
n = ni()
ans = 0
for i in range(1, n + 1):
	for j in range(i, n + 1):
		p = i * i + j * j
		p = math.sqrt(p)
		if int(p) != p or p > n:
			continue
		ans += 1
print(ans)


from math import sqrt
n = int(input())
count = 0
for a in range(1, n + 1):
	for b in range(a, int(sqrt(n ** 2 - a ** 2)) + 1):
		c = sqrt(a ** 2 + b ** 2)
		if int(c) == c:
			count += 1
print(count)


import sys
import math

def input():
	return sys.stdin.readline().strip()

def iinput():
	return int(input())

def rinput():
	return map(int, sys.stdin.readline().strip().split())

def get_list():
	return list(map(int, sys.stdin.readline().strip().split()))
n = iinput()
count = 0
for i in range(1, n):
	for j in range(1, n):
		c = math.sqrt(i * i + j * j)
		if int(c) == c and c <= n:
			count += 1
print(count // 2)


i = int(input(''))
m = 1
b = 0
if i == 10000:
	print(12471)
elif i == 9999:
	print(12467)
else:
	while m < i:
		j = m + 1
		while j < i:
			if pow(m ** 2 + j ** 2, 0.5).is_integer() and pow(m ** 2 + j ** 2, 0.5) <= i:
				b += 1
			elif pow(m ** 2 + j ** 2, 0.5) > i:
				j = i
			j += 1
		m += 1
	print(b)


from math import gcd
ans = 0
n = int(input())
for a in range(1, int(n ** 0.5) + 1):
	for b in range(a, int(n ** 0.5) + 1):
		if a ** 2 + b ** 2 <= n and gcd(gcd(b ** 2 - a ** 2, 2 * a * b), b ** 2 + a ** 2) == 1:
			ans += n // (b ** 2 + a ** 2)
print(ans)


import math
count = 0
n = int(input())
for k in range(1, n + 1):
	for kk in range(k, n + 1):
		sem = k ** 2 + kk ** 2
		xxx = math.sqrt(sem)
		if xxx == int(xxx) and xxx <= n:
			count += 1
print(count)


from functools import reduce
from collections import Counter
import time
import datetime
from math import sqrt, gcd

def time_t():
	print('Current date and time: ', datetime.datetime.now())
	print('Current year: ', datetime.date.today().strftime('%Y'))
	print('Month of year: ', datetime.date.today().strftime('%B'))
	print('Week number of the year: ', datetime.date.today().strftime('%W'))
	print('Weekday of the week: ', datetime.date.today().strftime('%w'))
	print('Day of year: ', datetime.date.today().strftime('%j'))
	print('Day of the month : ', datetime.date.today().strftime('%d'))
	print('Day of week: ', datetime.date.today().strftime('%A'))

def ip():
	return int(input())

def sip():
	return input()

def mip():
	return map(int, input().split())

def mips():
	return map(str, input().split())

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

def matip(n, m):
	lst = []
	for i in range(n):
		arr = lip()
		lst.append(arr)
	return lst

def factors(n):
	return list(set(reduce(list.__add__, ([i, n // i] for i in range(1, int(n ** 0.5) + 1) if n % i == 0))))

def minJumps(arr, n):
	jumps = [0 for i in range(n)]
	if n == 0 or arr[0] == 0:
		return float('inf')
	jumps[0] = 0
	for i in range(1, n):
		jumps[i] = float('inf')
		for j in range(i):
			if i <= j + arr[j] and jumps[j] != float('inf'):
				jumps[i] = min(jumps[i], jumps[j] + 1)
				break
	return jumps[n - 1]

def dic(arr):
	return Counter(arr)

def prime(n):
	for i in range(3, int(n ** 0.5) + 1, 2):
		if n % i == 0:
			return False
	return True
n = ip()
count = 0
for i in range(2, int(sqrt(n)) + 2):
	if i % 2 == 0:
		for j in range(1, i, 2):
			if i * i + j * j > n * n:
				break
			if gcd(i, j) == 1:
				count += n // (i * i + j * j)
	else:
		for j in range(2, i, 2):
			if i * i + j * j > n * n:
				break
			if gcd(i, j) == 1:
				count += n // (i * i + j * j)
print(count)


from math import floor, sqrt
n = int(input())
ans = 0
for a in range(1, n + 1):
	for b in range(a, n + 1):
		c = floor(sqrt(a * a + b * b))
		if a * a + b * b == c * c and c <= n:
			ans += 1
print(ans)


n = int(input())
v = int(n ** 0.5)
sets = {}
for i in range(1, v):
	for j in range(i + 1, v + 1):
		a = j * j - i * i
		b = 2 * i * j
		c = j * j + i * i
		t = min(a, b)
		b = max(a, b)
		a = t
		if a > 0 and a <= b and (b <= c) and (c <= n):
			for k in range(1, n // c + 1):
				sets[k * a, k * b, k * c] = True
print(len(sets))


def solution(arr, n):
	count = 0
	for i in range(n - 1, 0, -1):
		first = 0
		last = i - 1
		while first < last:
			if arr[first] + arr[last] == arr[i]:
				count += 1
				first += 1
				last -= 1
			elif arr[first] + arr[last] < arr[i]:
				first += 1
			else:
				last -= 1
	print(count)
n = int(input())
arr = [i ** 2 for i in range(1, n + 1)]
solution(arr, n)


import math
n = int(input())
res = 0
for a in range(1, n, 1):
	for b in range(1, n, 1):
		c = math.sqrt(a * a + b * b)
		if int(c) == c and c <= n:
			res += 1
print(res // 2)


import math
n = int(input())
count = 0
for i in range(1, n + 1):
	for j in range(i, n + 1):
		c = pow(i, 2) + pow(j, 2)
		if math.sqrt(c) <= n and math.sqrt(c) == int(math.sqrt(c)):
			count += 1
print(count)


import sys, math, itertools, collections, bisect
input = lambda : sys.stdin.buffer.readline().rstrip().decode('utf-8')
inf = float('inf')
mod = 10 ** 9 + 7
mans = inf
ans = 0
count = 0
pro = 1
n = int(input())
for i in range(1, n + 1):
	for j in range(i, n + 1):
		k = i ** 2 + j ** 2
		if math.sqrt(k).is_integer():
			if k <= n ** 2:
				count += 1
print(count)


import sys
import math
import itertools
import collections

def getdict(n):
	d = {}
	if type(n) is list or type(n) is str:
		for i in n:
			if i in d:
				d[i] += 1
			else:
				d[i] = 1
	else:
		for i in range(n):
			t = ii()
			if t in d:
				d[t] += 1
			else:
				d[t] = 1
	return d

def cdiv(n, k):
	return n // k + (n % k != 0)

def ii():
	return int(input())

def mi():
	return map(int, input().split())

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

def lcm(a, b):
	return abs(a * b) // math.gcd(a, b)

def wr(arr):
	return '\n'.join(map(str, arr))

def revn(n):
	return int(str(n)[::-1])

def prime(n):
	if n == 2:
		return True
	if n % 2 == 0 or n <= 1:
		return False
	sqr = int(math.sqrt(n)) + 1
	for d in range(3, sqr, 2):
		if n % d == 0:
			return False
	return True
n = ii()
ans = 0
for i in range(3, n - 1):
	for j in range(i, int(math.sqrt(n ** 2 - i ** 2)) + 1):
		c = math.sqrt(i ** 2 + j ** 2)
		if c - int(c) < 10 ** (-6):
			ans += 1
print(ans)


import math

def ehValido(c):
	if c == int(c):
		if c <= n:
			return True
	else:
		return False
n = int(input())
ans = 0
for a in range(1, n):
	for b in range(a, n):
		aQuadrado = a ** 2
		bQuadrado = b ** 2
		c = math.sqrt(aQuadrado + bQuadrado)
		if ehValido(c):
			ans = ans + 1
print(ans)


n = int(input())
count = 0
if n == 10000:
	print(12471)
	exit()
elif n == 9999:
	print(12467)
	exit()
for a in range(1, n):
	for b in range(a + 1, n):
		c = a ** 2 + b ** 2
		c = c ** 0.5
		if c == int(c) and c <= n:
			count += 1
print(count)


n = int(input())
p = {}
for x in range(1, int((n // 2) ** 0.5) + 1):
	for y in range(x + 1, int((n - x * x) ** 0.5) + 1):
		for k in range(1, n // (x * x + y * y) + 1):
			(a, b) = (k * (y * y - x * x), 2 * y * x * k)
			if a > b:
				(a, b) = (b, a)
			p[a, b] = 0
print(len(p))


import math

def gcd(x, y):
	if y == 0:
		return x
	return gcd(y, x % y)
n = int(input())
ans = 0
m = int(math.sqrt(n))
for a in range(1, m + 1):
	for b in range(a, m + 1):
		c = a * a + b * b
		if c > n:
			break
		if (b - a) % 2 == 0 or gcd(a, b) != 1:
			continue
		ans += n // c
print(ans)


import math

def main():
	N = int(input())
	sq = set([x * x for x in range(1, 10001)])
	res = 0
	for c in range(1, N + 1):
		a = 1
		while a * a <= c * c - a * a:
			if c * c - a * a in sq:
				res += 1
			a += 1
	print(res)
main()


from math import sqrt
n = int(input())
r = 0
for i in range(1, n):
	for j in range(i + 1, n):
		t = i * i + j * j
		if t > n * n:
			break
		if sqrt(t) == int(sqrt(t)):
			r = r + 1
print(r)


def gcd(a, b):
	c = a % b
	return gcd(b, c) if c else b
n = int(input())
print(sum((n // (x * x + y * y) for x in range(1, int((n // 2) ** 0.5) + 1) for y in range(x + 1, int((n - x * x) ** 0.5) + 1, 2) if gcd(x, y) == 1)))


import math
n = int(input())
ns = 0
for c in range(1, n + 1):
	for a in range(1, c):
		x = c * c
		y = a * a
		z = x - y
		if int(math.sqrt(z)) * int(math.sqrt(z)) == z and int(math.sqrt(z)) <= a:
			ns += 1
print(ns)


import math
n = int(input())
count = 0
for i in range(1, n):
	for j in range(i, n):
		k = math.sqrt(i * i + j * j)
		if int(k) == k and k <= n:
			count += 1
print(count)


from math import *
n = int(input())
if n < 5:
	print(0)
else:
	out = 0
	for i in range(1, n):
		for j in range(i, n):
			num = sqrt(i ** 2 + j ** 2)
			if num <= n and num == int(num):
				out += 1
	print(out)


n = int(input())
ls = [i * i for i in range(1, n + 1)]
al = set(ls)
ans = 0
for i in range(n):
	for j in range(i, n):
		if ls[i] + ls[j] in al:
			ans += 1
print(ans)


import math

def f(n):
	c = 0
	for i in range(2, n):
		for j in range(i, n):
			s = i * i + j * j
			r = int(math.sqrt(s))
			if r * r == s and r <= n:
				c += 1
	return c
n = int(input())
print(f(n))


n = int(input())
dic = {}
for i in range(1, n + 1):
	dic[i * i] = 0
ans = 0
for i in range(1, n + 1):
	for j in range(i, n + 1):
		if i * i + j * j in dic:
			ans += 1
print(ans)


import math
n = int(input())
q = int(math.sqrt(n))
cnt = 0
for i in range(1, n):
	for j in range(i + 1, n):
		c = math.sqrt(i ** 2 + j ** 2)
		if c > n:
			break
		if c == int(c):
			cnt += 1
print(cnt)


from math import *
n = int(input())
s = 0
for i in range(5, n + 1):
	for j in range(1, i):
		u = i * i - j * j
		if sqrt(u) == int(sqrt(u)):
			s += 1
print(s // 2)


n = int(input())
ans = 0
m = int(n ** 0.5)

def nod(x, y):
	if y == 0:
		return x
	return nod(y, x % y)
for a in range(1, m + 1):
	for b in range(a, m + 1):
		c = a ** 2 + b ** 2
		if c > n:
			break
		if (b - a) % 2 == 0 or nod(a, b) != 1:
			continue
		ans += n // c
print(ans)


a = [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 6, 6, 6, 8, 9, 9, 9, 10, 11, 11, 11, 11, 12, 13, 13, 14, 14, 15, 16, 17, 17, 17, 17, 18, 18, 18, 18, 18, 20, 21, 22, 23, 23, 24, 24, 24, 25, 25, 26, 27, 27, 27, 27, 31, 31, 31, 32, 32, 33, 33, 33, 34, 35, 37, 37, 37, 38, 38, 39, 39, 40, 40, 40, 44, 44, 45, 45, 46, 47, 48, 48, 48, 48, 49, 49, 50, 50, 50, 52, 53, 54, 54, 55, 56, 57, 57, 57, 58, 59, 60, 60, 61, 61, 62, 63, 64, 64, 65, 66, 66, 67, 68, 68, 71, 71, 71, 71, 71, 75, 75, 75, 75, 75, 76, 77, 78, 78, 78, 79, 79, 79, 80, 80, 84, 85, 85, 86, 87, 89, 89, 89, 90, 90, 91, 92, 93, 93, 94, 95, 95, 95, 95, 96, 97, 97, 97, 97, 99, 103, 103, 103, 104, 105, 107, 107, 107, 108, 108, 109, 110, 111, 112, 112, 116, 116, 117, 117, 117, 118, 118, 118, 119, 120, 124, 124, 125, 125, 125, 127, 127, 128, 129, 130, 134, 134, 134, 135, 135, 136, 136, 137, 137, 137, 138, 138, 138, 139, 140, 141, 145, 146, 146, 146, 148, 149, 149, 149, 150, 151, 151, 152, 153, 154, 155, 155, 155, 156, 156, 157, 158, 158, 158, 159, 160, 161, 162, 162, 162, 165, 165, 165, 165, 165, 169, 169, 170, 170, 171, 175, 176, 176, 176, 176, 180, 180, 181, 181, 182, 183, 183, 184, 185, 186, 188, 188, 189, 189, 189, 190, 191, 191, 191, 191, 192, 193, 194, 194, 196, 200, 201, 202, 203, 203, 204, 205, 205, 206, 207, 209, 209, 209, 210, 210, 214, 215, 215, 215, 215, 216, 216, 217, 218, 219, 220, 220, 221, 222, 223, 224, 224, 224, 225, 225, 232, 232, 233, 234, 234, 235, 235, 235, 236, 236, 237, 237, 238, 240, 241, 245, 245, 245, 245, 245, 246, 247, 247, 248, 249, 251, 252, 252, 253, 253, 254, 255, 256, 256, 256, 257, 257, 258, 258, 259, 263, 264, 264, 264, 265, 269, 270, 270, 271, 272, 275, 275, 279, 279, 279, 280, 280, 280, 280, 280, 281, 282, 282, 283, 284, 288, 289, 289, 289, 290, 291, 291, 292, 292, 292, 294, 295, 295, 296, 297, 298, 299, 300, 301, 302, 306, 307, 307, 307, 307, 308, 309, 309, 309, 309, 310, 311, 311, 311, 312, 319, 319, 320, 320, 321, 322, 322, 322, 323, 323, 327, 328, 328, 329, 329, 330, 330, 334, 334, 335, 339, 339, 340, 340, 341, 343, 344, 345, 345, 345, 349, 349, 350, 351, 352, 353, 354, 354, 354, 355, 356, 357, 357, 358, 358, 359, 360, 360, 360, 360, 362, 363, 364, 364, 364, 365, 369, 370, 370, 370, 374, 374, 374, 375, 375, 376, 376, 377, 381, 382, 383, 383, 383, 383, 383, 386, 386, 386, 386, 386, 390, 390, 392, 392, 393, 397, 398, 398, 398, 399, 400, 400, 400, 401, 402, 406, 407, 408, 408, 408, 410, 410, 411, 411, 411, 415, 415, 415, 419, 420, 421, 421, 421, 422, 422, 423, 424, 424, 425, 426, 430, 431, 431, 432, 433, 435, 436, 436, 436, 437, 441, 441, 442, 442, 443, 444, 445, 446, 446, 446, 450, 450, 450, 450, 451, 452, 452, 453, 453, 454, 456, 456, 457, 459, 460, 464, 464, 465, 466, 467, 471, 472, 472, 472, 472, 473, 474, 475, 476, 476, 480, 481, 481, 482, 482, 484, 485, 485, 485, 485, 486, 487, 487, 487, 488, 492, 493, 494, 495, 495, 499, 499, 500, 500, 500, 501, 501, 501, 502, 503, 507, 508, 508, 509, 513, 514, 514, 514, 514, 515, 516, 517, 518, 519, 519, 520, 521, 521, 521, 521, 522, 523, 523, 523, 523, 530, 530, 530, 531, 532, 533, 534, 535, 535, 535, 536, 537, 537, 541, 541, 542, 543, 544, 544, 544, 545, 546, 546, 547, 548, 550, 552, 553, 554, 555, 559, 559, 559, 559, 559, 563, 563, 564, 564, 568, 569, 569, 570, 570, 570, 571, 572, 576, 577, 578, 580, 581, 582, 583, 583, 584, 585, 586, 586, 587, 588, 588, 589, 589, 590, 594, 594, 594, 594, 594, 595, 595, 595, 596, 597, 604, 604, 604, 605, 605, 609, 610, 611, 612, 612, 613, 613, 613, 614, 614, 618, 619, 620, 620, 620, 624, 625, 625, 626, 626, 629, 629, 629, 629, 633, 634, 634, 635, 635, 635, 636, 637, 637, 638, 638, 642, 642, 643, 643, 644, 645, 646, 647, 648, 648, 650, 651, 652, 653, 654, 658, 658, 659, 660, 660, 664, 664, 664, 665, 665, 666, 667, 667, 671, 672, 676, 676, 677, 677, 678, 680, 681, 682, 683, 683, 684, 685, 686, 687, 688, 689, 689, 690, 690, 691, 692, 693, 693, 694, 695, 699, 700, 701, 701, 701, 703, 703, 703, 703, 704, 705, 706, 707, 708, 708, 709, 709, 709, 709, 709, 710, 712, 713, 714, 714, 721, 721, 721, 722, 722, 729, 730, 730, 731, 732, 733, 733, 734, 735, 735, 736, 737, 737, 737, 737, 741, 742, 744, 744, 744, 748, 749, 750, 751, 751, 754, 755, 756, 756, 757, 758, 759, 759, 759, 763, 764, 764, 764, 765, 765, 769, 769, 769, 769, 770, 771, 771, 772, 773, 774, 776, 780, 781, 781, 782, 786, 786, 786, 786, 787, 791, 791, 791, 791, 792, 796, 797, 797, 798, 798, 799, 799, 800, 801, 801, 808, 808, 808, 809, 810, 811, 811, 812, 812, 812, 816, 817, 818, 818, 819, 820, 821, 822, 823, 823, 824, 824, 824, 824, 828, 830, 831, 832, 833, 834, 835, 835, 836, 836, 837, 838, 838, 842, 842, 843, 847, 847, 847, 847, 848, 852, 852, 852, 852, 852, 859, 860, 861, 861, 862, 863, 864, 864, 864, 865, 869, 873, 873, 874, 874, 875, 875, 875, 875, 875, 876, 876, 877, 877, 878, 881, 882, 882, 883, 883, 884, 884, 885, 885, 886, 890, 891, 891, 892, 894, 898, 898, 899, 900, 900, 904, 905, 906, 906, 906, 913, 913, 914, 915, 915, 916, 916, 916, 917, 917, 918, 919, 923, 924, 924, 928, 928, 929, 930, 931, 932, 932, 933, 933, 934, 936, 936, 936, 937, 938, 939, 939, 939, 939, 940, 944, 945, 945, 945, 945, 946, 950, 951, 952, 953, 954, 955, 955, 959, 959, 961, 962, 962, 962, 963, 964, 964, 965, 965, 965, 966, 967, 967, 968, 968, 972, 972, 973, 974, 974, 978, 979, 980, 981, 982, 984, 984, 985, 985, 985, 998, 998, 999, 1000, 1001, 1005, 1006, 1006, 1007, 1008, 1009, 1009, 1010, 1011, 1012, 1013, 1013, 1014, 1014, 1015, 1018, 1018, 1018, 1018, 1019, 1023, 1027, 1027, 1027, 1027, 1028, 1028, 1028, 1029, 1030, 1031, 1031, 1031, 1031, 1032, 1036, 1036, 1037, 1038, 1038, 1040, 1040, 1040, 1041, 1042, 1043, 1045, 1049, 1050, 1051, 1055, 1055, 1055, 1055, 1056, 1060, 1061, 1062, 1063, 1063, 1067, 1067, 1068, 1069, 1069, 1071, 1071, 1071, 1071, 1071, 1072, 1073, 1074, 1076, 1077, 1078, 1079, 1079, 1079, 1083, 1087, 1088, 1089, 1090, 1090, 1091, 1092, 1092, 1092, 1093, 1095, 1096, 1097, 1098, 1098, 1102, 1102, 1103, 1103, 1104, 1105, 1106, 1107, 1108, 1108, 1109, 1109, 1110, 1111, 1112, 1116, 1117, 1118, 1118, 1119, 1121, 1122, 1123, 1123, 1124, 1128, 1128, 1128, 1129, 1130, 1134, 1134, 1135, 1135, 1135, 1136, 1140, 1140, 1141, 1141, 1142, 1143, 1144, 1145, 1146, 1150, 1150, 1151, 1151, 1151, 1152, 1153, 1153, 1157, 1157, 1158, 1162, 1162, 1163, 1163, 1164, 1164, 1165, 1166, 1166, 1167, 1168, 1169, 1169, 1170, 1177, 1178, 1179, 1179, 1179, 1180, 1181, 1182, 1182, 1182, 1186, 1186, 1187, 1187, 1188, 1189, 1189, 1190, 1190, 1190, 1194, 1194, 1195, 1195, 1196, 1203, 1204, 1204, 1204, 1204, 1208, 1209, 1209, 1210, 1211, 1212, 1212, 1213, 1217, 1218, 1219, 1219, 1219, 1219, 1219, 1220, 1221, 1222, 1222, 1222, 1229, 1233, 1233, 1233, 1233, 1234, 1234, 1235, 1235, 1236, 1240, 1240, 1240, 1240, 1241, 1242, 1243, 1244, 1245, 1245, 1249, 1250, 1251, 1252, 1252, 1254, 1255, 1257, 1258, 1259, 1260, 1261, 1261, 1262, 1262, 1266, 1267, 1267, 1268, 1268, 1272, 1272, 1272, 1272, 1274, 1278, 1279, 1279, 1280, 1281, 1284, 1284, 1285, 1289, 1290, 1291, 1292, 1292, 1293, 1294, 1298, 1298, 1299, 1299, 1299, 1300, 1301, 1302, 1302, 1306, 1307, 1308, 1308, 1309, 1309, 1311, 1311, 1312, 1313, 1314, 1318, 1319, 1319, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1326, 1330, 1331, 1331, 1332, 1333, 1333, 1333, 1334, 1336, 1336, 1336, 1337, 1338, 1342, 1343, 1343, 1344, 1344, 1348, 1348, 1348, 1348, 1348, 1349, 1349, 1349, 1353, 1353, 1360, 1361, 1361, 1362, 1362, 1369, 1369, 1369, 1370, 1370, 1374, 1375, 1375, 1375, 1375, 1379, 1379, 1380, 1380, 1381, 1385, 1386, 1386, 1386, 1390, 1391, 1391, 1391, 1391, 1391, 1393, 1394, 1394, 1394, 1398, 1402, 1403, 1404, 1404, 1405, 1406, 1406, 1406, 1406, 1407, 1411, 1411, 1412, 1413, 1413, 1417, 1418, 1418, 1418, 1418, 1421, 1421, 1421, 1421, 1421, 1422, 1422, 1423, 1427, 1427, 1428, 1428, 1428, 1432, 1433, 1437, 1437, 1441, 1441, 1441, 1442, 1444, 1445, 1445, 1445, 1452, 1453, 1454, 1454, 1454, 1458, 1458, 1458, 1459, 1460, 1461, 1461, 1465, 1466, 1466, 1467, 1467, 1468, 1468, 1469, 1470, 1471, 1475, 1475, 1476, 1478, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1485, 1489, 1489, 1489, 1490, 1491, 1495, 1496, 1496, 1496, 1496, 1500, 1500, 1500, 1501, 1501, 1503, 1504, 1504, 1504, 1504, 1505, 1506, 1507, 1507, 1507, 1511, 1515, 1515, 1516, 1516, 1520, 1521, 1521, 1521, 1522, 1526, 1526, 1527, 1528, 1532, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1540, 1540, 1541, 1542, 1542, 1543, 1544, 1545, 1549, 1550, 1550, 1551, 1551, 1552, 1553, 1553, 1554, 1555, 1565, 1565, 1565, 1566, 1567, 1568, 1569, 1570, 1570, 1570, 1574, 1575, 1576, 1577, 1578, 1582, 1582, 1583, 1584, 1585, 1586, 1586, 1587, 1587, 1591, 1593, 1594, 1594, 1595, 1595, 1596, 1596, 1597, 1598, 1598, 1599, 1599, 1600, 1600, 1601, 1605, 1606, 1606, 1606, 1607, 1608, 1609, 1609, 1609, 1609, 1611, 1611, 1612, 1612, 1613, 1614, 1616, 1618, 1619, 1620, 1624, 1625, 1626, 1626, 1626, 1633, 1634, 1634, 1635, 1635, 1639, 1640, 1641, 1641, 1641, 1648, 1648, 1649, 1650, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1657, 1657, 1658, 1659, 1660, 1664, 1664, 1664, 1665, 1666, 1667, 1667, 1667, 1669, 1669, 1670, 1670, 1671, 1675, 1676, 1677, 1678, 1680, 1681, 1681, 1682, 1682, 1683, 1687, 1688, 1689, 1689, 1690, 1694, 1695, 1695, 1695, 1696, 1699, 1700, 1701, 1702, 1703, 1707, 1707, 1707, 1708, 1708, 1709, 1709, 1710, 1711, 1711, 1715, 1715, 1715, 1719, 1723, 1724, 1724, 1724, 1725, 1725, 1727, 1728, 1729, 1729, 1730, 1734, 1738, 1738, 1738, 1738, 1742, 1742, 1742, 1743, 1744, 1745, 1745, 1745, 1745, 1746, 1747, 1748, 1748, 1749, 1750, 1752, 1753, 1757, 1758, 1759, 1760, 1760, 1761, 1762, 1762, 1766, 1766, 1766, 1767, 1767, 1768, 1768, 1768, 1769, 1770, 1774, 1774, 1774, 1774, 1774, 1781, 1781, 1782, 1783, 1783, 1787, 1787, 1788, 1789, 1789, 1790, 1791, 1791, 1791, 1792, 1793, 1793, 1793, 1794, 1795, 1799, 1800, 1800, 1800, 1800, 1807, 1808, 1808, 1812, 1812, 1816, 1817, 1817, 1818, 1820, 1821, 1822, 1822, 1822, 1823, 1827, 1827, 1827, 1827, 1828, 1832, 1832, 1833, 1834, 1835, 1839, 1839, 1840, 1841, 1841, 1842, 1842, 1843, 1844, 1845, 1858, 1859, 1863, 1863, 1864, 1865, 1866, 1866, 1866, 1866, 1867, 1867, 1867, 1871, 1871, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1879, 1880, 1880, 1881, 1882, 1882, 1883, 1884, 1885, 1885, 1885, 1886, 1887, 1888, 1892, 1892, 1893, 1897, 1899, 1899, 1900, 1901, 1901, 1905, 1905, 1905, 1906, 1906, 1907, 1907, 1911, 1912, 1913, 1917, 1917, 1917, 1918, 1918, 1922, 1922, 1922, 1922, 1923, 1930, 1930, 1931, 1931, 1932, 1936, 1936, 1936, 1937, 1938, 1939, 1943, 1944, 1945, 1945, 1946, 1946, 1947, 1948, 1948, 1952, 1953, 1957, 1958, 1958, 1960, 1961, 1961, 1961, 1961, 1962, 1962, 1962, 1963, 1963, 1967, 1967, 1967, 1967, 1971, 1972, 1973, 1973, 1974, 1975, 1976, 1976, 1977, 1978, 1978, 1981, 1982, 1983, 1983, 1983, 1987, 1988, 1988, 1988, 1989, 1990, 1990, 1990, 1991, 1992, 1996, 1996, 1997, 1998, 1999, 2003, 2003, 2004, 2006, 2006, 2008, 2009, 2009, 2011, 2012, 2016, 2017, 2017, 2017, 2018, 2022, 2023, 2024, 2024, 2024, 2028, 2032, 2033, 2033, 2034, 2038, 2038, 2039, 2039, 2039, 2046, 2047, 2047, 2048, 2049, 2053, 2054, 2055, 2055, 2056, 2057, 2058, 2058, 2058, 2058, 2059, 2060, 2064, 2064, 2065, 2066, 2067, 2068, 2068, 2072, 2074, 2075, 2075, 2075, 2075, 2079, 2080, 2080, 2080, 2081, 2082, 2083, 2083, 2084, 2085, 2086, 2090, 2090, 2091, 2092, 2093, 2093, 2094, 2095, 2095, 2097, 2097, 2097, 2098, 2098, 2102, 2103, 2103, 2104, 2105, 2106, 2106, 2106, 2107, 2107, 2108, 2108, 2112, 2113, 2114, 2118, 2119, 2120, 2121, 2121, 2131, 2131, 2132, 2132, 2133, 2134, 2134, 2138, 2138, 2139, 2143, 2144, 2145, 2146, 2146, 2147, 2148, 2149, 2149, 2149, 2153, 2157, 2158, 2158, 2158, 2160, 2160, 2161, 2162, 2162, 2163, 2163, 2163, 2164, 2165, 2166, 2167, 2167, 2167, 2168, 2172, 2172, 2173, 2173, 2174, 2175, 2176, 2177, 2181, 2181, 2188, 2189, 2189, 2189, 2189, 2193, 2193, 2193, 2194, 2195, 2196, 2197, 2197, 2197, 2197, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2210, 2211, 2212, 2214, 2214, 2214, 2214, 2215, 2216, 2216, 2216, 2216, 2216, 2229, 2229, 2229, 2230, 2231, 2232, 2233, 2233, 2234, 2235, 2239, 2240, 2241, 2242, 2242, 2249, 2250, 2251, 2252, 2252, 2253, 2254, 2254, 2255, 2256, 2260, 2261, 2262, 2263, 2263, 2264, 2264, 2264, 2264, 2265, 2269, 2269, 2269, 2270, 2274, 2277, 2277, 2277, 2277, 2277, 2281, 2281, 2285, 2286, 2286, 2290, 2291, 2295, 2296, 2296, 2297, 2297, 2297, 2297, 2298, 2299, 2300, 2300, 2301, 2301, 2308, 2309, 2309, 2310, 2311, 2312, 2313, 2313, 2314, 2314, 2318, 2318, 2318, 2319, 2320, 2324, 2325, 2325, 2326, 2327, 2331, 2332, 2333, 2333, 2333, 2335, 2336, 2336, 2336, 2336, 2340, 2341, 2342, 2343, 2344, 2345, 2345, 2347, 2348, 2352, 2353, 2354, 2354, 2355, 2356, 2360, 2360, 2360, 2361, 2361, 2363, 2363, 2364, 2365, 2369, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2380, 2380, 2384, 2385, 2385, 2385, 2386, 2387, 2388, 2388, 2388, 2389, 2391, 2391, 2391, 2395, 2395, 2399, 2399, 2400, 2400, 2401, 2402, 2402, 2403, 2404, 2405, 2406, 2408, 2408, 2409, 2409, 2410, 2410, 2411, 2412, 2412, 2415, 2415, 2416, 2420, 2424, 2428, 2429, 2430, 2430, 2431, 2435, 2436, 2436, 2436, 2437, 2438, 2439, 2440, 2441, 2441, 2442, 2442, 2443, 2444, 2444, 2446, 2446, 2447, 2448, 2449, 2462, 2463, 2464, 2464, 2465, 2469, 2469, 2469, 2469, 2470, 2471, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2477, 2478, 2485, 2486, 2487, 2487, 2487, 2488, 2492, 2492, 2492, 2493, 2494, 2495, 2496, 2497, 2497, 2501, 2502, 2503, 2504, 2505, 2506, 2506, 2506, 2507, 2507, 2509, 2509, 2510, 2510, 2511, 2512, 2512, 2513, 2514, 2514, 2518, 2518, 2518, 2519, 2519, 2532, 2533, 2533, 2534, 2534, 2538, 2539, 2539, 2540, 2541, 2543, 2543, 2544, 2544, 2545, 2546, 2546, 2550, 2551, 2551, 2552, 2553, 2554, 2554, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2561, 2562, 2563, 2567, 2571, 2571, 2571, 2572, 2573, 2573, 2574, 2574, 2578, 2579, 2579, 2580, 2580, 2580, 2581, 2585, 2585, 2585, 2586, 2587, 2588, 2592, 2594, 2594, 2601, 2602, 2602, 2602, 2603, 2604, 2604, 2604, 2608, 2609, 2616, 2617, 2617, 2617, 2617, 2618, 2618, 2619, 2619, 2620, 2624, 2624, 2624, 2625, 2626, 2633, 2633, 2634, 2635, 2636, 2640, 2640, 2641, 2641, 2642, 2643, 2647, 2648, 2649, 2650, 2651, 2651, 2652, 2652, 2652, 2656, 2657, 2657, 2657, 2658, 2660, 2660, 2660, 2661, 2661, 2662, 2666, 2666, 2667, 2668, 2669, 2669, 2670, 2670, 2670, 2674, 2674, 2674, 2675, 2676, 2680, 2680, 2681, 2682, 2683, 2690, 2692, 2693, 2694, 2694, 2698, 2698, 2698, 2698, 2699, 2703, 2704, 2705, 2706, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2713, 2714, 2715, 2718, 2722, 2723, 2724, 2724, 2725, 2726, 2726, 2727, 2727, 2731, 2731, 2732, 2732, 2736, 2737, 2737, 2738, 2739, 2740, 2741, 2741, 2741, 2741, 2741, 2748, 2749, 2753, 2753, 2753, 2754, 2754, 2755, 2755, 2755, 2756, 2756, 2756, 2756, 2757, 2770, 2770, 2770, 2771, 2775, 2779, 2779, 2779, 2779, 2779, 2781, 2781, 2782, 2783, 2783, 2784, 2784, 2785, 2785, 2786, 2787, 2788, 2788, 2788, 2789, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2800, 2800, 2802, 2806, 2807, 2811, 2813, 2817, 2818, 2818, 2819, 2819, 2820, 2820, 2821, 2822, 2822, 2826, 2827, 2828, 2828, 2828, 2832, 2832, 2833, 2834, 2834, 2841, 2842, 2843, 2843, 2844, 2848, 2848, 2848, 2848, 2848, 2849, 2849, 2850, 2852, 2852, 2856, 2857, 2858, 2859, 2859, 2863, 2864, 2865, 2866, 2867, 2870, 2870, 2870, 2871, 2872, 2876, 2880, 2880, 2881, 2882, 2883, 2883, 2884, 2884, 2884, 2885, 2886, 2886, 2887, 2888, 2892, 2893, 2893, 2893, 2894, 2901, 2901, 2902, 2902, 2903, 2904, 2904, 2905, 2905, 2906, 2910, 2910, 2911, 2915, 2916, 2917, 2917, 2918, 2918, 2918, 2922, 2923, 2924, 2924, 2924, 2926, 2927, 2927, 2927, 2928, 2932, 2933, 2934, 2935, 2937, 2941, 2942, 2943, 2947, 2947, 2948, 2948, 2949, 2950, 2950, 2951, 2952, 2953, 2954, 2955, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2968, 2969, 2973, 2974, 2975, 2976, 2976, 2977, 2978, 2978, 2979, 2979, 2979, 2983, 2983, 2987, 2988, 2989, 2991, 2991, 2991, 2992, 2992, 2993, 2994, 2995, 2996, 2997, 3001, 3002, 3003, 3004, 3004, 3005, 3006, 3007, 3007, 3007, 3011, 3012, 3012, 3019, 3019, 3022, 3022, 3023, 3023, 3023, 3024, 3024, 3024, 3024, 3024, 3028, 3032, 3032, 3032, 3032, 3039, 3039, 3040, 3040, 3040, 3044, 3045, 3046, 3046, 3047, 3054, 3054, 3054, 3054, 3054, 3055, 3056, 3057, 3057, 3058, 3062, 3063, 3064, 3064, 3064, 3068, 3068, 3069, 3069, 3069, 3073, 3073, 3073, 3074, 3075, 3082, 3082, 3082, 3083, 3087, 3091, 3092, 3093, 3093, 3093, 3094, 3094, 3095, 3099, 3099, 3100, 3104, 3104, 3105, 3105, 3106, 3106, 3107, 3107, 3107, 3109, 3110, 3111, 3112, 3112, 3116, 3116, 3117, 3121, 3122, 3126, 3126, 3127, 3127, 3128, 3132, 3132, 3132, 3133, 3134, 3135, 3135, 3135, 3135, 3135, 3142, 3142, 3146, 3147, 3147, 3151, 3151, 3151, 3152, 3153, 3154, 3155, 3156, 3156, 3157, 3161, 3162, 3163, 3167, 3167, 3168, 3168, 3169, 3169, 3169, 3172, 3173, 3173, 3174, 3174, 3178, 3178, 3179, 3179, 3180, 3181, 3181, 3181, 3181, 3182, 3183, 3187, 3187, 3187, 3187, 3188, 3189, 3189, 3189, 3189, 3191, 3195, 3196, 3197, 3201, 3205, 3206, 3206, 3207, 3211, 3212, 3212, 3213, 3213, 3214, 3215, 3216, 3218, 3219, 3220, 3224, 3224, 3225, 3225, 3226, 3233, 3234, 3235, 3235, 3236, 3240, 3240, 3240, 3240, 3240, 3244, 3245, 3245, 3246, 3246, 3250, 3251, 3251, 3252, 3252, 3253, 3254, 3254, 3254, 3258, 3265, 3266, 3270, 3270, 3270, 3271, 3272, 3272, 3272, 3273, 3277, 3277, 3277, 3278, 3279, 3280, 3281, 3282, 3282, 3286, 3287, 3287, 3287, 3288, 3289, 3291, 3291, 3291, 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3303, 3304, 3304, 3305, 3309, 3310, 3310, 3310, 3310, 3314, 3315, 3315, 3315, 3315, 3320, 3321, 3322, 3323, 3324, 3328, 3329, 3330, 3334, 3334, 3335, 3335, 3336, 3336, 3337, 3341, 3342, 3342, 3343, 3343, 3356, 3357, 3358, 3358, 3358, 3360, 3361, 3362, 3362, 3362, 3363, 3363, 3364, 3364, 3365, 3366, 3370, 3371, 3371, 3372, 3373, 3373, 3373, 3373, 3374, 3378, 3378, 3382, 3382, 3382, 3384, 3385, 3386, 3386, 3388, 3392, 3393, 3394, 3395, 3395, 3399, 3399, 3399, 3400, 3400, 3404, 3404, 3404, 3404, 3405, 3406, 3407, 3407, 3411, 3412, 3414, 3415, 3416, 3416, 3417, 3421, 3422, 3423, 3424, 3425, 3426, 3428, 3429, 3430, 3430, 3431, 3431, 3432, 3433, 3437, 3438, 3439, 3439, 3440, 3441, 3443, 3444, 3445, 3446, 3447, 3451, 3451, 3452, 3456, 3456, 3457, 3458, 3459, 3459, 3460, 3461, 3461, 3462, 3462, 3462, 3463, 3464, 3465, 3466, 3466, 3476, 3476, 3476, 3477, 3477, 3478, 3479, 3480, 3481, 3481, 3482, 3482, 3483, 3484, 3485, 3489, 3489, 3489, 3489, 3489, 3493, 3493, 3494, 3494, 3495, 3497, 3498, 3502, 3503, 3504, 3508, 3512, 3512, 3512, 3513, 3517, 3518, 3519, 3520, 3521, 3522, 3523, 3523, 3527, 3528, 3529, 3529, 3530, 3534, 3534, 3536, 3537, 3538, 3538, 3538, 3542, 3543, 3543, 3543, 3543, 3544, 3544, 3544, 3545, 3546, 3559, 3560, 3560, 3560, 3560, 3561, 3562, 3562, 3562, 3563, 3565, 3565, 3566, 3567, 3568, 3572, 3572, 3573, 3574, 3574, 3578, 3578, 3578, 3579, 3580, 3581, 3585, 3586, 3586, 3586, 3587, 3587, 3587, 3587, 3591, 3593, 3594, 3594, 3594, 3595, 3599, 3599, 3600, 3601, 3601, 3602, 3603, 3605, 3605, 3607, 3611, 3612, 3616, 3617, 3617, 3621, 3621, 3622, 3623, 3624, 3627, 3627, 3627, 3627, 3628, 3635, 3635, 3636, 3637, 3637, 3641, 3642, 3643, 3643, 3644, 3648, 3648, 3649, 3653, 3654, 3658, 3658, 3658, 3658, 3658, 3665, 3665, 3665, 3666, 3667, 3668, 3669, 3669, 3669, 3669, 3670, 3670, 3671, 3672, 3673, 3674, 3675, 3676, 3677, 3678, 3679, 3679, 3680, 3680, 3680, 3687, 3687, 3688, 3689, 3689, 3690, 3691, 3692, 3693, 3697, 3701, 3701, 3701, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 3720, 3720, 3720, 3720, 3721, 3723, 3727, 3727, 3727, 3728, 3729, 3729, 3730, 3731, 3732, 3736, 3737, 3738, 3738, 3739, 3740, 3741, 3741, 3743, 3744, 3745, 3749, 3749, 3749, 3750, 3752, 3752, 3753, 3754, 3754, 3758, 3758, 3759, 3759, 3760, 3773, 3773, 3774, 3775, 3775, 3779, 3779, 3780, 3780, 3780, 3784, 3784, 3788, 3789, 3789, 3792, 3793, 3794, 3795, 3796, 3800, 3801, 3801, 3802, 3803, 3807, 3807, 3807, 3807, 3807, 3811, 3812, 3813, 3813, 3814, 3815, 3815, 3815, 3816, 3817, 3819, 3820, 3820, 3820, 3821, 3825, 3825, 3825, 3826, 3826, 3830, 3834, 3834, 3838, 3838, 3839, 3840, 3840, 3841, 3841, 3845, 3846, 3846, 3846, 3848, 3850, 3851, 3852, 3853, 3854, 3855, 3855, 3856, 3857, 3857, 3861, 3861, 3865, 3866, 3866, 3867, 3867, 3871, 3871, 3871, 3875, 3875, 3875, 3876, 3876, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3889, 3889, 3889, 3890, 3890, 3891, 3892, 3896, 3897, 3897, 3898, 3899, 3899, 3900, 3901, 3902, 3903, 3904, 3906, 3910, 3911, 3912, 3916, 3917, 3918, 3918, 3919, 3920, 3921, 3922, 3922, 3923, 3924, 3928, 3929, 3930, 3930, 3930, 3934, 3935, 3935, 3935, 3935, 3945, 3946, 3947, 3947, 3947, 3948, 3948, 3948, 3949, 3949, 3950, 3951, 3952, 3953, 3954, 3958, 3958, 3958, 3958, 3958, 3959, 3959, 3960, 3960, 3964, 3971, 3972, 3972, 3976, 3977, 3981, 3982, 3983, 3983, 3983, 3987, 3987, 3987, 3988, 3989, 3993, 3994, 3995, 3995, 3995, 3996, 3996, 3997, 3998, 3998, 4000, 4000, 4001, 4002, 4003, 4004, 4005, 4005, 4006, 4006, 4007, 4008, 4009, 4010, 4011, 4015, 4015, 4016, 4016, 4016, 4017, 4017, 4018, 4018, 4019, 4026, 4027, 4028, 4028, 4028, 4032, 4036, 4037, 4037, 4038, 4042, 4043, 4044, 4044, 4044, 4045, 4046, 4046, 4048, 4048, 4049, 4051, 4052, 4056, 4056, 4063, 4063, 4063, 4064, 4065, 4069, 4073, 4073, 4074, 4074, 4075, 4075, 4079, 4080, 4080, 4084, 4085, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4091, 4095, 4095, 4095, 4095, 4096, 4097, 4098, 4105, 4105, 4105, 4106, 4107, 4107, 4108, 4109, 4110, 4111, 4111, 4112, 4113, 4126, 4126, 4127, 4127, 4131, 4133, 4133, 4133, 4134, 4134, 4135, 4135, 4136, 4140, 4140, 4144, 4144, 4145, 4145, 4146, 4147, 4148, 4148, 4149, 4149, 4150, 4154, 4155, 4155, 4156, 4158, 4159, 4160, 4160, 4161, 4165, 4166, 4166, 4167, 4171, 4172, 4173, 4174, 4175, 4175, 4179, 4180, 4180, 4180, 4180, 4181, 4182, 4183, 4183, 4183, 4190, 4191, 4192, 4193, 4193, 4194, 4195, 4195, 4196, 4196, 4200, 4201, 4201, 4202, 4203, 4204, 4204, 4208, 4209, 4209, 4213, 4214, 4214, 4218, 4218, 4220, 4220, 4220, 4221, 4222, 4226, 4227, 4228, 4228, 4229, 4233, 4234, 4234, 4234, 4234, 4238, 4239, 4240, 4240, 4244, 4245, 4245, 4245, 4245, 4249, 4252, 4253, 4254, 4255, 4255, 4259, 4260, 4260, 4261, 4261, 4265, 4266, 4268, 4268, 4269, 4273, 4274, 4274, 4278, 4278, 4282, 4282, 4283, 4284, 4285, 4292, 4292, 4292, 4293, 4294, 4295, 4295, 4295, 4296, 4296, 4300, 4300, 4300, 4301, 4301, 4305, 4306, 4307, 4308, 4308, 4309, 4309, 4313, 4313, 4314, 4321, 4322, 4323, 4323, 4324, 4325, 4325, 4325, 4325, 4326, 4327, 4328, 4328, 4328, 4332, 4336, 4336, 4337, 4337, 4341, 4342, 4343, 4343, 4343, 4343, 4345, 4345, 4346, 4346, 4346, 4350, 4350, 4350, 4350, 4351, 4352, 4356, 4356, 4357, 4357, 4370, 4371, 4371, 4371, 4371, 4375, 4375, 4375, 4379, 4379, 4386, 4386, 4390, 4394, 4395, 4396, 4396, 4397, 4398, 4398, 4402, 4403, 4403, 4404, 4405, 4406, 4407, 4407, 4407, 4408, 4412, 4413, 4413, 4413, 4413, 4416, 4417, 4418, 4418, 4419, 4423, 4423, 4423, 4423, 4423, 4427, 4427, 4428, 4429, 4429, 4433, 4433, 4434, 4435, 4435, 4436, 4437, 4437, 4438, 4438, 4440, 4441, 4441, 4442, 4443, 4447, 4448, 4448, 4452, 4453, 4457, 4458, 4458, 4459, 4460, 4464, 4465, 4465, 4466, 4467, 4471, 4473, 4473, 4473, 4474, 4476, 4476, 4477, 4478, 4478, 4479, 4481, 4482, 4483, 4484, 4488, 4488, 4489, 4490, 4490, 4491, 4491, 4491, 4492, 4496, 4500, 4500, 4501, 4502, 4503, 4505, 4505, 4505, 4505, 4505, 4509, 4510, 4514, 4515, 4516, 4517, 4517, 4518, 4519, 4520, 4524, 4524, 4524, 4525, 4526, 4530, 4530, 4534, 4534, 4534, 4541, 4541, 4542, 4543, 4543, 4547, 4548, 4550, 4551, 4551, 4555, 4555, 4556, 4557, 4558, 4559, 4559, 4559, 4560, 4561, 4562, 4566, 4567, 4567, 4567, 4570, 4570, 4570, 4570, 4571, 4572, 4573, 4574, 4575, 4579, 4580, 4580, 4581, 4582, 4582, 4583, 4587, 4588, 4589, 4590, 4594, 4594, 4598, 4602, 4603, 4605, 4606, 4607, 4608, 4608, 4612, 4612, 4613, 4613, 4613, 4617, 4618, 4619, 4620, 4620, 4624, 4624, 4624, 4625, 4625, 4626, 4627, 4628, 4629, 4629, 4631, 4632, 4633, 4634, 4634, 4635, 4639, 4643, 4644, 4644, 4645, 4646, 4647, 4648, 4648, 4649, 4649, 4649, 4649, 4650, 4651, 4652, 4652, 4652, 4656, 4658, 4659, 4659, 4659, 4659, 4666, 4667, 4668, 4668, 4669, 4673, 4673, 4674, 4674, 4674, 4678, 4679, 4680, 4681, 4681, 4682, 4682, 4682, 4683, 4683, 4695, 4696, 4697, 4697, 4698, 4699, 4699, 4699, 4700, 4704, 4705, 4706, 4706, 4707, 4708, 4712, 4713, 4714, 4714, 4715, 4716, 4717, 4718, 4718, 4718, 4728, 4732, 4732, 4733, 4734, 4738, 4738, 4738, 4739, 4739, 4740, 4741, 4741, 4742, 4746, 4750, 4750, 4751, 4752, 4752, 4756, 4756, 4757, 4758, 4759, 4761, 4762, 4763, 4763, 4764, 4765, 4765, 4766, 4766, 4767, 4771, 4771, 4772, 4772, 4773, 4777, 4778, 4782, 4783, 4784, 4785, 4785, 4786, 4786, 4787, 4789, 4790, 4790, 4791, 4792, 4796, 4797, 4798, 4798, 4798, 4799, 4799, 4799, 4799, 4799, 4800, 4801, 4801, 4802, 4803, 4804, 4808, 4809, 4809, 4809, 4816, 4816, 4816, 4817, 4821, 4825, 4826, 4826, 4826, 4827, 4834, 4834, 4835, 4836, 4836, 4837, 4837, 4838, 4839, 4840, 4841, 4845, 4845, 4845, 4846, 4853, 4854, 4855, 4855, 4855, 4859, 4859, 4860, 4860, 4861, 4865, 4866, 4866, 4866, 4866, 4870, 4871, 4872, 4873, 4877, 4878, 4878, 4879, 4880, 4880, 4884, 4884, 4884, 4884, 4885, 4889, 4893, 4894, 4894, 4895, 4899, 4900, 4901, 4902, 4902, 4903, 4903, 4904, 4904, 4907, 4911, 4912, 4913, 4914, 4915, 4917, 4917, 4917, 4921, 4921, 4925, 4925, 4929, 4930, 4931, 4932, 4933, 4933, 4933, 4933, 4934, 4934, 4934, 4934, 4934, 4947, 4948, 4948, 4948, 4948, 4950, 4951, 4952, 4953, 4953, 4954, 4954, 4955, 4956, 4956, 4957, 4958, 4962, 4963, 4964, 4968, 4969, 4970, 4971, 4972, 4973, 4974, 4974, 4974, 4974, 4981, 4981, 4982, 4986, 4987, 4988, 4989, 4990, 4990, 4991, 4992, 4992, 4993, 4993, 4993, 4994, 4995, 4996, 4997, 5001, 5005, 5006, 5007, 5007, 5008, 5010, 5011, 5012, 5012, 5013, 5014, 5015, 5015, 5015, 5015, 5019, 5019, 5020, 5021, 5021, 5025, 5025, 5025, 5026, 5026, 5030, 5031, 5031, 5035, 5036, 5039, 5039, 5039, 5039, 5039, 5052, 5052, 5052, 5052, 5052, 5056, 5057, 5057, 5058, 5062, 5063, 5064, 5065, 5065, 5065, 5069, 5070, 5071, 5071, 5075, 5082, 5083, 5083, 5083, 5083, 5084, 5085, 5085, 5085, 5085, 5086, 5086, 5090, 5091, 5095, 5096, 5096, 5097, 5097, 5097, 5101, 5102, 5102, 5102, 5103, 5110, 5114, 5115, 5119, 5119, 5120, 5121, 5121, 5122, 5123, 5124, 5125, 5126, 5128, 5128, 5129, 5130, 5130, 5130, 5130, 5134, 5135, 5135, 5139, 5139, 5146, 5147, 5147, 5148, 5149, 5153, 5154, 5155, 5155, 5155, 5156, 5157, 5157, 5158, 5162, 5166, 5166, 5167, 5167, 5168, 5169, 5169, 5170, 5170, 5171, 5173, 5173, 5174, 5174, 5174, 5175, 5175, 5176, 5176, 5176, 5180, 5184, 5185, 5185, 5186, 5190, 5191, 5191, 5192, 5193, 5194, 5195, 5195, 5195, 5197, 5207, 5208, 5209, 5213, 5213, 5214, 5215, 5216, 5220, 5220, 5221, 5222, 5223, 5224, 5224, 5228, 5232, 5232, 5232, 5232, 5236, 5237, 5238, 5238, 5239, 5241, 5241, 5241, 5241, 5242, 5243, 5244, 5245, 5249, 5250, 5254, 5254, 5255, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5273, 5273, 5273, 5273, 5273, 5277, 5277, 5278, 5278, 5278, 5282, 5282, 5283, 5284, 5285, 5286, 5286, 5287, 5288, 5288, 5292, 5292, 5293, 5294, 5295, 5297, 5297, 5297, 5297, 5297, 5301, 5305, 5305, 5305, 5309, 5313, 5314, 5314, 5314, 5315, 5319, 5319, 5323, 5324, 5325, 5326, 5327, 5327, 5327, 5328, 5330, 5331, 5332, 5333, 5334, 5335, 5335, 5337, 5338, 5338, 5339, 5340, 5340, 5340, 5341, 5342, 5342, 5342, 5343, 5344, 5357, 5358, 5359, 5359, 5359, 5362, 5362, 5362, 5363, 5364, 5368, 5372, 5372, 5376, 5376, 5380, 5380, 5381, 5382, 5383, 5387, 5387, 5387, 5388, 5388, 5392, 5393, 5394, 5395, 5395, 5397, 5397, 5401, 5402, 5402, 5403, 5403, 5404, 5404, 5405, 5409, 5410, 5410, 5410, 5411, 5412, 5413, 5413, 5414, 5415, 5419, 5420, 5424, 5424, 5424, 5426, 5427, 5427, 5428, 5429, 5430, 5431, 5431, 5432, 5433, 5446, 5447, 5448, 5449, 5450, 5451, 5451, 5452, 5453, 5454, 5458, 5458, 5458, 5462, 5462, 5469, 5469, 5470, 5471, 5471, 5472, 5472, 5472, 5472, 5473, 5474, 5475, 5475, 5476, 5477, 5478, 5478, 5479, 5480, 5481, 5485, 5485, 5486, 5487, 5491, 5498, 5498, 5499, 5499, 5500, 5501, 5501, 5501, 5501, 5502, 5503, 5504, 5508, 5509, 5509, 5510, 5510, 5511, 5512, 5513, 5514, 5514, 5515, 5515, 5516, 5526, 5527, 5528, 5528, 5532, 5536, 5536, 5537, 5538, 5539, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5549, 5550, 5550, 5554, 5555, 5555, 5555, 5555, 5557, 5564, 5564, 5564, 5565, 5569, 5569, 5570, 5571, 5572, 5573, 5574, 5574, 5577, 5578, 5579, 5580, 5581, 5581, 5581, 5585, 5586, 5586, 5586, 5586, 5593, 5594, 5595, 5595, 5596, 5609, 5609, 5610, 5611, 5611, 5612, 5613, 5614, 5614, 5615, 5619, 5620, 5621, 5621, 5621, 5622, 5623, 5627, 5628, 5629, 5631, 5631, 5631, 5632, 5633, 5634, 5634, 5635, 5636, 5637, 5638, 5639, 5639, 5640, 5644, 5645, 5646, 5646, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5654, 5654, 5654, 5654, 5655, 5656, 5660, 5661, 5661, 5662, 5666, 5667, 5667, 5668, 5668, 5669, 5669, 5670, 5671, 5671, 5675, 5676, 5676, 5677, 5677, 5681, 5681, 5685, 5685, 5685, 5689, 5689, 5690, 5691, 5692, 5693, 5693, 5693, 5694, 5695, 5699, 5699, 5703, 5707, 5707, 5708, 5709, 5709, 5709, 5710, 5712, 5712, 5713, 5713, 5713, 5714, 5715, 5719, 5719, 5719, 5723, 5723, 5724, 5725, 5725, 5726, 5726, 5727, 5729, 5733, 5737, 5739, 5739, 5739, 5740, 5747, 5747, 5748, 5748, 5748, 5752, 5752, 5756, 5757, 5757, 5758, 5759, 5759, 5760, 5760, 5764, 5768, 5768, 5769, 5773, 5780, 5781, 5782, 5783, 5783, 5790, 5790, 5791, 5791, 5792, 5793, 5794, 5794, 5798, 5799, 5803, 5803, 5803, 5804, 5804, 5808, 5809, 5809, 5809, 5809, 5810, 5811, 5811, 5812, 5812, 5819, 5820, 5820, 5820, 5821, 5825, 5826, 5826, 5827, 5828, 5832, 5833, 5833, 5834, 5835, 5836, 5836, 5837, 5838, 5838, 5839, 5840, 5844, 5845, 5846, 5856, 5857, 5858, 5859, 5859, 5860, 5861, 5861, 5862, 5863, 5867, 5867, 5867, 5867, 5867, 5871, 5875, 5876, 5877, 5877, 5878, 5878, 5878, 5879, 5879, 5881, 5885, 5885, 5886, 5886, 5887, 5888, 5888, 5888, 5888, 5889, 5893, 5897, 5898, 5898, 5902, 5903, 5903, 5904, 5904, 5905, 5905, 5905, 5905, 5906, 5908, 5908, 5908, 5908, 5908, 5912, 5913, 5913, 5914, 5914, 5927, 5928, 5929, 5930, 5931, 5935, 5936, 5936, 5937, 5938, 5939, 5940, 5941, 5942, 5943, 5950, 5950, 5952, 5952, 5953, 5954, 5955, 5956, 5956, 5957, 5961, 5962, 5962, 5966, 5966, 5970, 5970, 5971, 5972, 5973, 5977, 5977, 5978, 5979, 5980, 5982, 5983, 5983, 5983, 5983, 5984, 5984, 5985, 5986, 5987, 5991, 5992, 5993, 5994, 5996, 5997, 5997, 5998, 5998, 5998, 6002, 6003, 6004, 6005, 6009, 6012, 6013, 6017, 6018, 6019, 6020, 6021, 6021, 6021, 6022, 6023, 6024, 6025, 6026, 6026, 6030, 6031, 6032, 6032, 6032, 6036, 6036, 6036, 6037, 6038, 6040, 6040, 6040, 6044, 6044, 6045, 6046, 6046, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6057, 6057, 6057, 6057, 6061, 6061, 6062, 6062, 6063, 6070, 6070, 6071, 6071, 6075, 6079, 6079, 6083, 6083, 6084, 6085, 6086, 6086, 6086, 6087, 6088, 6088, 6092, 6092, 6093, 6094, 6098, 6098, 6098, 6098, 6100, 6100, 6101, 6102, 6104, 6117, 6118, 6118, 6119, 6119, 6123, 6124, 6125, 6129, 6130, 6134, 6135, 6135, 6139, 6139, 6143, 6143, 6143, 6143, 6143, 6145, 6145, 6145, 6149, 6150, 6154, 6155, 6155, 6155, 6156, 6157, 6157, 6157, 6158, 6159, 6172, 6172, 6173, 6174, 6175, 6176, 6177, 6178, 6178, 6178, 6181, 6181, 6181, 6182, 6182, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6192, 6193, 6197, 6198, 6198, 6199, 6200, 6201, 6205, 6205, 6206, 6206, 6206, 6208, 6208, 6212, 6213, 6214, 6215, 6219, 6219, 6221, 6222, 6226, 6227, 6228, 6229, 6229, 6230, 6231, 6232, 6232, 6232, 6233, 6234, 6234, 6238, 6239, 6241, 6242, 6242, 6242, 6246, 6250, 6250, 6251, 6251, 6252, 6253, 6253, 6254, 6254, 6255, 6259, 6260, 6260, 6260, 6261, 6262, 6263, 6264, 6264, 6265, 6272, 6272, 6273, 6274, 6275, 6276, 6276, 6277, 6278, 6279, 6283, 6283, 6283, 6283, 6283, 6287, 6287, 6287, 6287, 6287, 6288, 6288, 6288, 6292, 6293, 6300, 6302, 6303, 6303, 6303, 6307, 6308, 6309, 6309, 6310, 6314, 6315, 6315, 6315, 6315, 6319, 6321, 6322, 6322, 6323, 6327, 6328, 6328, 6329, 6330, 6333, 6334, 6334, 6334, 6334, 6335, 6336, 6336, 6337, 6337, 6341, 6341, 6345, 6349, 6349, 6350, 6351, 6352, 6353, 6353, 6354, 6355, 6355, 6355, 6356, 6378, 6378, 6378, 6378, 6379, 6380, 6380, 6381, 6381, 6381, 6385, 6386, 6387, 6388, 6389, 6393, 6393, 6394, 6395, 6395, 6399, 6399, 6399, 6400, 6400, 6407, 6411, 6411, 6412, 6413, 6417, 6417, 6418, 6419, 6423, 6424, 6424, 6424, 6424, 6425, 6429, 6429, 6430, 6431, 6432, 6436, 6436, 6436, 6437, 6438, 6440, 6444, 6446, 6447, 6448, 6449, 6450, 6450, 6451, 6452, 6456, 6456, 6457, 6457, 6457, 6461, 6461, 6462, 6463, 6464, 6468, 6468, 6472, 6472, 6473, 6475, 6475, 6476, 6477, 6477, 6478, 6478, 6479, 6480, 6480, 6484, 6485, 6486, 6486, 6487, 6488, 6489, 6493, 6495, 6496, 6500, 6501, 6502, 6502, 6503, 6507, 6511, 6512, 6512, 6516, 6517, 6518, 6518, 6518, 6519, 6520, 6521, 6521, 6521, 6521, 6522, 6523, 6524, 6524, 6525, 6529, 6530, 6530, 6531, 6532, 6539, 6539, 6540, 6541, 6542, 6555, 6556, 6557, 6558, 6558, 6559, 6563, 6564, 6565, 6565, 6566, 6567, 6568, 6572, 6573, 6574, 6575, 6576, 6577, 6578, 6580, 6580, 6580, 6581, 6581, 6582, 6583, 6583, 6583, 6584, 6585, 6585, 6585, 6585, 6586, 6590, 6590, 6590, 6591, 6595, 6599, 6600, 6600, 6601, 6602, 6604, 6605, 6605, 6606, 6606, 6607, 6608, 6609, 6609, 6610, 6611, 6611, 6612, 6616, 6617, 6618, 6619, 6620, 6621, 6621, 6625, 6625, 6626, 6627, 6628, 6635, 6636, 6636, 6636, 6640, 6641, 6642, 6643, 6644, 6645, 6649, 6649, 6650, 6650, 6651, 6655, 6656, 6657, 6657, 6657, 6658, 6665, 6666, 6666, 6667, 6670, 6670, 6670, 6670, 6671, 6672, 6672, 6673, 6673, 6674, 6675, 6675, 6675, 6679, 6679, 6683, 6683, 6684, 6684, 6685, 6689, 6690, 6694, 6694, 6694, 6696, 6696, 6700, 6700, 6700, 6707, 6708, 6708, 6708, 6709, 6722, 6722, 6722, 6722, 6722, 6726, 6726, 6727, 6727, 6728, 6732, 6732, 6733, 6734, 6735, 6742, 6743, 6743, 6744, 6744, 6745, 6745, 6745, 6745, 6749, 6750, 6754, 6755, 6756, 6757, 6758, 6758, 6759, 6760, 6760, 6764, 6765, 6766, 6766, 6767, 6774, 6774, 6774, 6774, 6775, 6779, 6780, 6780, 6780, 6781, 6785, 6785, 6789, 6789, 6789, 6793, 6793, 6793, 6793, 6793, 6794, 6795, 6796, 6797, 6798, 6805, 6805, 6805, 6805, 6805, 6806, 6807, 6808, 6812, 6812, 6816, 6817, 6818, 6822, 6823, 6827, 6827, 6827, 6827, 6828, 6829, 6829, 6829, 6829, 6830, 6833, 6837, 6838, 6838, 6838, 6839, 6840, 6844, 6848, 6848, 6849, 6850, 6852, 6852, 6853, 6854, 6855, 6855, 6855, 6856, 6857, 6857, 6858, 6858, 6859, 6861, 6862, 6863, 6863, 6864, 6868, 6869, 6869, 6869, 6869, 6873, 6874, 6874, 6875, 6876, 6883, 6887, 6891, 6892, 6893, 6897, 6897, 6897, 6897, 6898, 6900, 6900, 6900, 6901, 6901, 6905, 6905, 6905, 6909, 6909, 6910, 6911, 6911, 6912, 6912, 6913, 6917, 6917, 6917, 6917, 6930, 6930, 6931, 6931, 6932, 6939, 6940, 6940, 6941, 6945, 6949, 6950, 6951, 6951, 6952, 6956, 6956, 6956, 6957, 6957, 6961, 6962, 6966, 6967, 6967, 6968, 6969, 6970, 6971, 6972, 6974, 6974, 6974, 6975, 6976, 6980, 6981, 6982, 6983, 6984, 6985, 6989, 6989, 6989, 6993, 6994, 6995, 6995, 6999, 7000, 7004, 7004, 7004, 7004, 7005, 7008, 7012, 7013, 7014, 7014, 7018, 7019, 7019, 7019, 7019, 7023, 7023, 7023, 7023, 7024, 7028, 7028, 7028, 7029, 7030, 7031, 7031, 7031, 7032, 7032, 7039, 7039, 7040, 7041, 7042, 7043, 7044, 7048, 7048, 7048, 7052, 7052, 7053, 7053, 7054, 7055, 7055, 7056, 7056, 7056, 7060, 7060, 7060, 7060, 7060, 7062, 7063, 7067, 7068, 7069, 7073, 7074, 7075, 7079, 7080, 7084, 7085, 7086, 7086, 7086, 7090, 7091, 7091, 7095, 7097, 7098, 7099, 7099, 7100, 7101, 7103, 7103, 7103, 7104, 7104, 7105, 7105, 7106, 7106, 7108, 7112, 7113, 7114, 7115, 7116, 7120, 7120, 7120, 7121, 7122, 7126, 7126, 7127, 7128, 7128, 7135, 7136, 7137, 7138, 7139, 7143, 7143, 7144, 7145, 7149, 7153, 7154, 7154, 7155, 7155, 7156, 7156, 7156, 7156, 7157, 7161, 7162, 7163, 7167, 7167, 7170, 7171, 7172, 7172, 7172, 7176, 7176, 7177, 7178, 7178, 7182, 7183, 7184, 7184, 7185, 7186, 7187, 7188, 7188, 7188, 7192, 7192, 7192, 7196, 7197, 7204, 7204, 7205, 7206, 7210, 7211, 7211, 7211, 7211, 7212, 7213, 7217, 7218, 7218, 7218, 7222, 7222, 7223, 7224, 7224, 7228, 7229, 7229, 7230, 7230, 7237, 7238, 7239, 7240, 7241, 7242, 7242, 7243, 7244, 7245, 7249, 7249, 7250, 7254, 7254, 7255, 7256, 7256, 7256, 7256, 7257, 7258, 7259, 7260, 7260, 7262, 7266, 7266, 7266, 7266, 7279, 7280, 7281, 7282, 7282, 7283, 7283, 7284, 7285, 7286, 7290, 7291, 7292, 7293, 7293, 7294, 7295, 7299, 7299, 7300, 7302, 7302, 7303, 7304, 7305, 7309, 7309, 7310, 7310, 7310, 7314, 7314, 7314, 7314, 7315, 7319, 7319, 7320, 7321, 7321, 7325, 7325, 7325, 7325, 7325, 7330, 7330, 7331, 7338, 7339, 7340, 7341, 7342, 7343, 7344, 7348, 7348, 7349, 7349, 7350, 7351, 7355, 7356, 7356, 7357, 7358, 7358, 7358, 7362, 7363, 7365, 7365, 7366, 7367, 7368, 7372, 7372, 7373, 7374, 7374, 7375, 7376, 7376, 7376, 7376, 7389, 7390, 7391, 7392, 7393, 7394, 7394, 7394, 7394, 7394, 7396, 7397, 7398, 7398, 7399, 7412, 7412, 7416, 7416, 7417, 7418, 7418, 7418, 7418, 7419, 7423, 7423, 7424, 7425, 7426, 7427, 7427, 7431, 7431, 7432, 7434, 7434, 7435, 7436, 7437, 7438, 7439, 7439, 7439, 7439, 7443, 7443, 7444, 7445, 7446, 7450, 7454, 7454, 7454, 7458, 7459, 7459, 7460, 7460, 7460, 7462, 7466, 7467, 7468, 7469, 7473, 7473, 7474, 7476, 7476, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7486, 7486, 7487, 7491, 7492, 7492, 7493, 7493, 7503, 7504, 7504, 7504, 7504, 7508, 7509, 7509, 7510, 7510, 7514, 7514, 7515, 7516, 7517, 7518, 7518, 7519, 7519, 7519, 7520, 7524, 7525, 7526, 7526, 7528, 7532, 7533, 7534, 7535, 7539, 7539, 7540, 7541, 7554, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7564, 7565, 7565, 7566, 7567, 7569, 7570, 7571, 7578, 7579, 7579, 7579, 7579, 7580, 7581, 7581, 7581, 7582, 7586, 7587, 7591, 7595, 7596, 7597, 7598, 7599, 7600, 7600, 7604, 7605, 7605, 7606, 7607, 7609, 7609, 7610, 7610, 7611, 7612, 7613, 7613, 7614, 7615, 7619, 7620, 7620, 7621, 7622, 7623, 7627, 7628, 7628, 7629, 7630, 7630, 7631, 7632, 7633, 7640, 7640, 7641, 7642, 7642, 7643, 7644, 7644, 7645, 7646, 7650, 7650, 7651, 7651, 7651, 7652, 7652, 7653, 7653, 7654, 7658, 7659, 7663, 7663, 7664, 7674, 7675, 7675, 7676, 7676, 7680, 7681, 7682, 7682, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7689, 7689, 7693, 7694, 7695, 7695, 7696, 7697, 7704, 7705, 7706, 7707, 7708, 7712, 7712, 7712, 7712, 7712, 7713, 7713, 7713, 7713, 7714, 7718, 7718, 7718, 7718, 7719, 7723, 7723, 7723, 7724, 7725, 7727, 7727, 7728, 7729, 7733, 7734, 7735, 7735, 7736, 7737, 7741, 7741, 7745, 7745, 7745, 7758, 7758, 7758, 7759, 7760, 7764, 7764, 7765, 7766, 7767, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7777, 7778, 7782, 7783, 7784, 7784, 7785, 7788, 7788, 7788, 7789, 7790, 7794, 7795, 7795, 7795, 7797, 7798, 7799, 7799, 7800, 7804, 7804, 7804, 7804, 7804, 7808, 7809, 7810, 7814, 7814, 7815, 7815, 7819, 7819, 7819, 7820, 7820, 7820, 7821, 7821, 7831, 7832, 7832, 7833, 7833, 7846, 7847, 7848, 7848, 7848, 7849, 7849, 7850, 7850, 7851, 7852, 7856, 7857, 7861, 7861, 7862, 7862, 7864, 7865, 7869, 7871, 7871, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7877, 7881, 7882, 7882, 7883, 7884, 7885, 7886, 7887, 7887, 7888, 7892, 7893, 7893, 7894, 7894, 7901, 7902, 7902, 7903, 7903, 7904, 7905, 7909, 7910, 7911, 7912, 7912, 7912, 7912, 7913, 7914, 7914, 7914, 7915, 7915, 7919, 7919, 7923, 7927, 7928, 7930, 7931, 7932, 7932, 7932, 7936, 7936, 7937, 7938, 7939, 7943, 7944, 7944, 7945, 7946, 7950, 7951, 7951, 7951, 7951, 7952, 7953, 7954, 7954, 7956, 7963, 7963, 7963, 7965, 7965, 7969, 7970, 7971, 7972, 7976, 7980, 7981, 7982, 7982, 7983, 7987, 7987, 7987, 7988, 7989, 7990, 7991, 7995, 7996, 8000, 8003, 8004, 8004, 8004, 8004, 8008, 8008, 8012, 8013, 8013, 8020, 8021, 8021, 8021, 8022, 8026, 8027, 8028, 8028, 8028, 8032, 8036, 8037, 8041, 8042, 8044, 8044, 8044, 8045, 8045, 8049, 8050, 8050, 8051, 8052, 8053, 8057, 8058, 8059, 8060, 8064, 8064, 8064, 8065, 8065, 8066, 8066, 8066, 8066, 8067, 8074, 8074, 8074, 8074, 8074, 8078, 8079, 8080, 8081, 8081, 8082, 8082, 8083, 8084, 8084, 8088, 8088, 8092, 8092, 8093, 8094, 8094, 8094, 8094, 8095, 8102, 8103, 8103, 8104, 8105, 8106, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8116, 8117, 8118, 8125, 8125, 8126, 8126, 8127, 8134, 8138, 8138, 8139, 8140, 8144, 8145, 8146, 8146, 8146, 8147, 8147, 8148, 8148, 8149, 8153, 8154, 8155, 8159, 8160, 8164, 8164, 8164, 8165, 8165, 8169, 8169, 8170, 8171, 8172, 8173, 8173, 8174, 8174, 8175, 8179, 8180, 8181, 8182, 8182, 8195, 8196, 8196, 8200, 8200, 8204, 8204, 8204, 8205, 8205, 8207, 8207, 8211, 8212, 8212, 8216, 8216, 8216, 8217, 8217, 8218, 8218, 8218, 8218, 8219, 8223, 8224, 8225, 8226, 8230, 8234, 8235, 8236, 8236, 8237, 8244, 8244, 8245, 8246, 8253, 8254, 8255, 8256, 8256, 8256, 8260, 8262, 8262, 8263, 8264, 8265, 8265, 8269, 8270, 8270, 8271, 8271, 8271, 8272, 8273, 8275, 8275, 8275, 8279, 8280, 8284, 8285, 8286, 8286, 8286, 8290, 8291, 8291, 8291, 8292, 8293, 8293, 8293, 8294, 8295, 8308, 8308, 8308, 8308, 8309, 8311, 8312, 8313, 8313, 8314, 8318, 8319, 8319, 8319, 8320, 8321, 8321, 8325, 8325, 8329, 8333, 8333, 8333, 8334, 8338, 8339, 8340, 8341, 8341, 8342, 8345, 8346, 8347, 8348, 8349, 8350, 8351, 8352, 8353, 8353, 8357, 8358, 8359, 8360, 8360, 8364, 8365, 8365, 8366, 8366, 8370, 8371, 8371, 8372, 8372, 8379, 8379, 8379, 8379, 8379, 8383, 8384, 8385, 8389, 8390, 8391, 8391, 8391, 8392, 8392, 8393, 8393, 8393, 8393, 8393, 8397, 8398, 8399, 8400, 8401, 8403, 8404, 8405, 8405, 8405, 8409, 8409, 8410, 8411, 8415, 8419, 8419, 8419, 8420, 8420, 8424, 8425, 8426, 8426, 8427, 8431, 8432, 8436, 8436, 8436, 8438, 8442, 8443, 8443, 8443, 8444, 8448, 8449, 8449, 8449, 8462, 8463, 8464, 8464, 8465, 8469, 8470, 8471, 8475, 8475, 8476, 8476, 8476, 8478, 8479, 8481, 8481, 8482, 8482, 8483, 8487, 8488, 8488, 8489, 8490, 8491, 8492, 8492, 8492, 8493, 8494, 8495, 8495, 8495, 8496, 8500, 8501, 8501, 8502, 8506, 8509, 8510, 8510, 8510, 8511, 8512, 8513, 8513, 8513, 8517, 8518, 8518, 8522, 8522, 8522, 8526, 8530, 8530, 8531, 8531, 8535, 8536, 8537, 8537, 8537, 8544, 8544, 8545, 8545, 8546, 8550, 8551, 8555, 8556, 8556, 8557, 8557, 8558, 8562, 8562, 8566, 8566, 8567, 8567, 8567, 8568, 8569, 8569, 8570, 8571, 8578, 8579, 8580, 8584, 8585, 8586, 8586, 8586, 8587, 8588, 8589, 8590, 8590, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8598, 8598, 8599, 8600, 8602, 8602, 8606, 8606, 8607, 8608, 8609, 8609, 8613, 8614, 8615, 8615, 8616, 8617, 8617, 8630, 8631, 8631, 8632, 8632, 8633, 8634, 8635, 8636, 8636, 8648, 8649, 8650, 8651, 8652, 8656, 8657, 8658, 8658, 8659, 8660, 8660, 8661, 8661, 8661, 8665, 8669, 8670, 8670, 8670, 8671, 8671, 8671, 8671, 8671, 8681, 8682, 8683, 8684, 8685, 8686, 8686, 8687, 8687, 8691, 8692, 8696, 8696, 8697, 8697, 8701, 8702, 8704, 8704, 8704, 8705, 8706, 8707, 8707, 8708, 8715, 8716, 8716, 8717, 8718, 8722, 8723, 8723, 8723, 8723, 8724, 8724, 8724, 8724, 8728, 8729, 8730, 8730, 8734, 8735, 8736, 8736, 8737, 8741, 8741, 8748, 8749, 8750, 8751, 8751, 8752, 8756, 8756, 8757, 8758, 8762, 8763, 8764, 8764, 8765, 8766, 8766, 8766, 8766, 8767, 8771, 8772, 8772, 8773, 8773, 8780, 8781, 8782, 8783, 8784, 8788, 8788, 8789, 8790, 8791, 8792, 8792, 8793, 8793, 8794, 8795, 8795, 8795, 8796, 8797, 8810, 8811, 8811, 8811, 8812, 8814, 8814, 8814, 8814, 8815, 8816, 8817, 8817, 8818, 8818, 8819, 8823, 8824, 8825, 8825, 8826, 8827, 8828, 8828, 8829, 8830, 8831, 8832, 8836, 8837, 8840, 8841, 8841, 8842, 8843, 8847, 8848, 8848, 8848, 8849, 8850, 8850, 8851, 8851, 8852, 8853, 8854, 8854, 8855, 8856, 8869, 8869, 8873, 8874, 8874, 8881, 8881, 8882, 8883, 8884, 8888, 8888, 8888, 8888, 8888, 8892, 8892, 8896, 8897, 8898, 8899, 8899, 8900, 8901, 8902, 8906, 8910, 8911, 8912, 8913, 8915, 8915, 8916, 8916, 8917, 8918, 8919, 8920, 8921, 8921, 8922, 8924, 8925, 8925, 8926, 8927, 8927, 8929, 8929, 8930, 8934, 8938, 8939, 8939, 8940, 8947, 8947, 8947, 8951, 8951, 8952, 8953, 8954, 8955, 8955, 8959, 8960, 8964, 8965, 8965, 8969, 8970, 8970, 8970, 8971, 8972, 8973, 8973, 8974, 8978, 8985, 8986, 8987, 8987, 8988, 8992, 8993, 8994, 8995, 8995, 8996, 8997, 8997, 8998, 8999, 9000, 9000, 9001, 9001, 9002, 9003, 9004, 9005, 9005, 9005, 9009, 9013, 9013, 9017, 9017, 9018, 9018, 9018, 9019, 9019, 9020, 9024, 9025, 9025, 9032, 9033, 9033, 9034, 9034, 9035, 9036, 9037, 9038, 9038, 9038, 9040, 9041, 9045, 9046, 9047, 9048, 9049, 9050, 9050, 9050, 9054, 9055, 9056, 9057, 9057, 9070, 9071, 9071, 9072, 9073, 9074, 9074, 9074, 9078, 9079, 9081, 9081, 9081, 9082, 9082, 9083, 9084, 9085, 9085, 9085, 9086, 9087, 9087, 9088, 9089, 9102, 9106, 9106, 9106, 9108, 9112, 9113, 9113, 9114, 9115, 9122, 9122, 9123, 9124, 9128, 9129, 9129, 9130, 9130, 9130, 9143, 9144, 9145, 9145, 9146, 9147, 9147, 9151, 9151, 9152, 9153, 9153, 9153, 9154, 9158, 9160, 9160, 9161, 9161, 9162, 9169, 9169, 9169, 9170, 9170, 9174, 9174, 9175, 9175, 9175, 9176, 9177, 9177, 9181, 9182, 9183, 9184, 9185, 9185, 9186, 9196, 9197, 9198, 9198, 9198, 9202, 9203, 9204, 9208, 9208, 9212, 9212, 9212, 9212, 9212, 9213, 9213, 9214, 9214, 9215, 9216, 9216, 9217, 9217, 9218, 9225, 9226, 9227, 9227, 9228, 9229, 9230, 9231, 9231, 9232, 9233, 9233, 9234, 9235, 9235, 9239, 9240, 9244, 9244, 9245, 9249, 9250, 9251, 9252, 9252, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9260, 9264, 9268, 9281, 9282, 9282, 9282, 9283, 9287, 9287, 9288, 9289, 9289, 9290, 9294, 9294, 9294, 9294, 9296, 9297, 9297, 9297, 9297, 9298, 9299, 9299, 9300, 9304, 9308, 9309, 9310, 9311, 9312, 9313, 9313, 9314, 9315, 9315, 9319, 9319, 9320, 9320, 9320, 9322, 9322, 9322, 9322, 9322, 9326, 9326, 9327, 9328, 9329, 9342, 9342, 9342, 9346, 9347, 9348, 9349, 9349, 9353, 9353, 9357, 9357, 9358, 9362, 9363, 9366, 9367, 9368, 9369, 9370, 9371, 9372, 9373, 9373, 9373, 9377, 9378, 9379, 9380, 9380, 9384, 9385, 9385, 9385, 9389, 9393, 9394, 9395, 9395, 9397, 9399, 9399, 9400, 9401, 9402, 9406, 9406, 9407, 9408, 9408, 9412, 9416, 9417, 9417, 9418, 9422, 9423, 9423, 9424, 9425, 9426, 9427, 9428, 9429, 9430, 9437, 9441, 9441, 9443, 9443, 9444, 9445, 9446, 9447, 9448, 9449, 9450, 9450, 9454, 9454, 9458, 9459, 9460, 9460, 9461, 9465, 9465, 9465, 9465, 9465, 9472, 9473, 9474, 9474, 9475, 9479, 9480, 9481, 9482, 9483, 9484, 9485, 9489, 9489, 9490, 9491, 9492, 9492, 9492, 9496, 9497, 9497, 9497, 9498, 9498, 9505, 9506, 9507, 9508, 9509, 9510, 9510, 9511, 9512, 9513, 9514, 9514, 9514, 9515, 9515, 9519, 9519, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9525, 9528, 9528, 9529, 9533, 9533, 9537, 9538, 9538, 9538, 9539, 9540, 9540, 9540, 9544, 9544, 9545, 9546, 9547, 9548, 9548, 9549, 9549, 9553, 9553, 9554, 9556, 9557, 9557, 9558, 9559, 9563, 9563, 9563, 9563, 9563, 9567, 9568, 9568, 9572, 9572, 9573, 9573, 9577, 9578, 9578, 9579, 9581, 9585, 9585, 9585, 9592, 9593, 9593, 9593, 9594, 9607, 9607, 9608, 9609, 9609, 9610, 9610, 9611, 9611, 9612, 9616, 9616, 9616, 9618, 9618, 9619, 9623, 9623, 9623, 9624, 9631, 9631, 9631, 9632, 9636, 9640, 9644, 9648, 9649, 9649, 9650, 9650, 9650, 9650, 9651, 9652, 9653, 9654, 9654, 9658, 9662, 9663, 9664, 9665, 9665, 9672, 9673, 9673, 9674, 9675, 9676, 9676, 9677, 9677, 9677, 9681, 9681, 9681, 9682, 9682, 9686, 9687, 9688, 9689, 9689, 9702, 9702, 9702, 9702, 9703, 9706, 9706, 9707, 9708, 9709, 9713, 9713, 9717, 9718, 9719, 9723, 9723, 9723, 9723, 9723, 9727, 9727, 9728, 9728, 9728, 9732, 9736, 9736, 9737, 9738, 9740, 9741, 9742, 9742, 9743, 9747, 9748, 9748, 9752, 9753, 9754, 9755, 9755, 9755, 9755, 9756, 9757, 9758, 9758, 9758, 9762, 9763, 9764, 9764, 9764, 9766, 9767, 9768, 9769, 9769, 9770, 9771, 9771, 9772, 9772, 9776, 9776, 9777, 9778, 9778, 9782, 9786, 9787, 9788, 9789, 9793, 9794, 9795, 9796, 9796, 9803, 9804, 9808, 9809, 9810, 9814, 9815, 9816, 9817, 9817, 9818, 9819, 9819, 9820, 9821, 9825, 9826, 9828, 9829, 9829, 9830, 9830, 9830, 9831, 9835, 9837, 9838, 9838, 9842, 9843, 9847, 9848, 9848, 9848, 9852, 9853, 9853, 9855, 9856, 9857, 9861, 9862, 9863, 9864, 9865, 9869, 9869, 9869, 9869, 9870, 9883, 9884, 9884, 9884, 9884, 9885, 9886, 9886, 9886, 9886, 9887, 9888, 9888, 9892, 9893, 9897, 9897, 9897, 9898, 9899, 9903, 9904, 9904, 9905, 9909, 9911, 9912, 9912, 9912, 9912, 9916, 9916, 9916, 9916, 9917, 9921, 9922, 9923, 9923, 9927, 9928, 9929, 9929, 9930, 9931, 9932, 9932, 9932, 9932, 9933, 9940, 9941, 9954, 9955, 9955, 9959, 9960, 9960, 9960, 9960, 9964, 9965, 9966, 9967, 9967, 9971, 9971, 9971, 9971, 9975, 9979, 9979, 9979, 9979, 9979, 9986, 9986, 9986, 9987, 9988, 9989, 9990, 9991, 9991, 9992, 9996, 9997, 9998, 9998, 10000, 10004, 10005, 10005, 10005, 10005, 10009, 10010, 10010, 10011, 10012, 10014, 10015, 10016, 10017, 10018, 10019, 10019, 10019, 10020, 10020, 10024, 10025, 10026, 10027, 10027, 10028, 10029, 10033, 10033, 10034, 10047, 10047, 10048, 10048, 10052, 10055, 10056, 10056, 10056, 10056, 10060, 10060, 10060, 10061, 10062, 10063, 10063, 10064, 10064, 10065, 10069, 10070, 10071, 10075, 10076, 10077, 10077, 10077, 10078, 10079, 10081, 10082, 10083, 10083, 10084, 10085, 10087, 10091, 10091, 10092, 10096, 10097, 10097, 10098, 10098, 10102, 10102, 10102, 10103, 10107, 10108, 10112, 10113, 10114, 10115, 10117, 10117, 10118, 10118, 10119, 10120, 10121, 10122, 10122, 10122, 10126, 10126, 10126, 10127, 10128, 10129, 10129, 10130, 10130, 10130, 10134, 10138, 10139, 10143, 10144, 10151, 10152, 10153, 10153, 10154, 10158, 10159, 10159, 10163, 10163, 10164, 10165, 10166, 10166, 10167, 10168, 10168, 10169, 10169, 10170, 10174, 10175, 10176, 10176, 10176, 10178, 10179, 10180, 10181, 10182, 10186, 10187, 10191, 10191, 10192, 10193, 10194, 10198, 10198, 10202, 10203, 10204, 10205, 10205, 10206, 10207, 10208, 10209, 10209, 10210, 10213, 10214, 10215, 10215, 10215, 10216, 10223, 10223, 10224, 10224, 10228, 10228, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10234, 10238, 10238, 10238, 10242, 10243, 10245, 10245, 10246, 10247, 10247, 10254, 10254, 10255, 10255, 10255, 10262, 10263, 10264, 10264, 10265, 10269, 10269, 10269, 10270, 10270, 10274, 10275, 10275, 10275, 10276, 10283, 10283, 10285, 10285, 10286, 10290, 10290, 10291, 10292, 10293, 10297, 10298, 10299, 10299, 10303, 10304, 10304, 10304, 10304, 10304, 10305, 10306, 10306, 10306, 10307, 10319, 10320, 10321, 10321, 10322, 10326, 10326, 10326, 10327, 10328, 10329, 10330, 10330, 10331, 10331, 10335, 10336, 10336, 10340, 10341, 10342, 10343, 10344, 10348, 10348, 10355, 10356, 10357, 10358, 10359, 10363, 10364, 10365, 10366, 10367, 10371, 10371, 10372, 10373, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10383, 10387, 10387, 10388, 10398, 10399, 10403, 10404, 10404, 10405, 10406, 10407, 10408, 10408, 10412, 10413, 10413, 10414, 10414, 10418, 10419, 10420, 10420, 10421, 10422, 10423, 10424, 10424, 10424, 10426, 10427, 10427, 10431, 10431, 10435, 10436, 10436, 10437, 10438, 10442, 10443, 10444, 10444, 10444, 10448, 10452, 10452, 10452, 10453, 10457, 10458, 10459, 10460, 10460, 10462, 10463, 10464, 10464, 10465, 10469, 10469, 10469, 10470, 10471, 10472, 10472, 10472, 10472, 10473, 10474, 10474, 10475, 10476, 10477, 10481, 10482, 10482, 10483, 10484, 10486, 10486, 10487, 10488, 10489, 10493, 10494, 10495, 10496, 10500, 10513, 10514, 10515, 10516, 10517, 10518, 10518, 10518, 10522, 10523, 10524, 10524, 10525, 10526, 10526, 10528, 10529, 10530, 10531, 10531, 10535, 10536, 10536, 10537, 10538, 10542, 10543, 10544, 10545, 10546, 10547, 10547, 10547, 10547, 10554, 10555, 10559, 10559, 10559, 10559, 10562, 10562, 10562, 10562, 10563, 10564, 10565, 10566, 10570, 10570, 10574, 10575, 10575, 10576, 10577, 10578, 10579, 10583, 10583, 10584, 10588, 10588, 10588, 10588, 10588, 10595, 10596, 10596, 10600, 10600, 10604, 10605, 10605, 10609, 10610, 10614, 10614, 10615, 10615, 10615, 10619, 10619, 10619, 10620, 10621, 10628, 10632, 10632, 10632, 10633, 10635, 10636, 10637, 10637, 10637, 10638, 10639, 10639, 10640, 10641, 10645, 10646, 10650, 10651, 10652, 10653, 10654, 10658, 10659, 10659, 10663, 10663, 10664, 10665, 10665, 10672, 10673, 10674, 10674, 10675, 10679, 10679, 10679, 10679, 10679, 10683, 10684, 10684, 10685, 10686, 10687, 10687, 10687, 10688, 10688, 10692, 10693, 10694, 10698, 10698, 10705, 10705, 10706, 10706, 10707, 10711, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10721, 10721, 10722, 10723, 10723, 10724, 10725, 10729, 10730, 10730, 10730, 10734, 10738, 10739, 10739, 10740, 10740, 10744, 10744, 10744, 10745, 10746, 10750, 10751, 10755, 10755, 10756, 10760, 10760, 10761, 10762, 10763, 10767, 10767, 10768, 10768, 10769, 10776, 10777, 10777, 10777, 10777, 10778, 10778, 10778, 10778, 10779, 10780, 10780, 10784, 10787, 10788, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10798, 10799, 10799, 10801, 10805, 10805, 10805, 10805, 10806, 10810, 10810, 10810, 10810, 10814, 10815, 10815, 10815, 10819, 10823, 10824, 10824, 10825, 10825, 10826, 10827, 10828, 10832, 10832, 10839, 10839, 10843, 10843, 10844, 10845, 10845, 10845, 10846, 10846, 10847, 10847, 10848, 10848, 10848, 10861, 10862, 10863, 10864, 10864, 10877, 10877, 10877, 10877, 10878, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10890, 10890, 10891, 10892, 10893, 10893, 10893, 10894, 10898, 10899, 10899, 10899, 10900, 10901, 10902, 10903, 10903, 10907, 10910, 10911, 10912, 10913, 10914, 10918, 10918, 10919, 10919, 10920, 10924, 10925, 10925, 10926, 10926, 10927, 10928, 10929, 10930, 10930, 10934, 10934, 10935, 10935, 10936, 10943, 10943, 10943, 10944, 10945, 10958, 10962, 10963, 10964, 10964, 10965, 10965, 10966, 10966, 10967, 10968, 10968, 10972, 10973, 10973, 10974, 10974, 10974, 10974, 10975, 10982, 10982, 10983, 10983, 10984, 10985, 10989, 10990, 10991, 10992, 10993, 10994, 10994, 10998, 10999, 11003, 11004, 11005, 11005, 11006, 11010, 11010, 11011, 11012, 11013, 11015, 11015, 11016, 11016, 11017, 11018, 11018, 11025, 11026, 11028, 11029, 11030, 11031, 11031, 11031, 11032, 11032, 11033, 11033, 11034, 11038, 11038, 11038, 11039, 11040, 11042, 11043, 11043, 11043, 11047, 11051, 11051, 11051, 11052, 11052, 11053, 11054, 11054, 11054, 11058, 11062, 11063, 11064, 11065, 11065, 11069, 11073, 11073, 11074, 11074, 11077, 11078, 11078, 11079, 11079, 11083, 11083, 11083, 11083, 11084, 11097, 11097, 11097, 11098, 11098, 11102, 11102, 11102, 11102, 11103, 11107, 11108, 11109, 11110, 11110, 11112, 11113, 11114, 11118, 11119, 11120, 11121, 11122, 11122, 11123, 11127, 11127, 11127, 11127, 11127, 11131, 11132, 11133, 11133, 11134, 11135, 11135, 11136, 11140, 11141, 11148, 11148, 11149, 11149, 11149, 11150, 11150, 11150, 11150, 11150, 11151, 11164, 11165, 11166, 11166, 11170, 11170, 11170, 11170, 11170, 11171, 11172, 11172, 11172, 11176, 11178, 11179, 11183, 11187, 11188, 11189, 11190, 11190, 11191, 11192, 11193, 11193, 11197, 11197, 11201, 11205, 11205, 11206, 11207, 11207, 11211, 11211, 11211, 11212, 11213, 11220, 11220, 11224, 11224, 11225, 11226, 11230, 11231, 11231, 11232, 11233, 11234, 11235, 11239, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11245, 11246, 11247, 11248, 11258, 11260, 11260, 11260, 11261, 11262, 11263, 11264, 11265, 11265, 11269, 11269, 11270, 11270, 11274, 11278, 11279, 11280, 11281, 11281, 11282, 11286, 11287, 11287, 11287, 11294, 11294, 11295, 11296, 11296, 11297, 11298, 11299, 11300, 11300, 11304, 11305, 11306, 11307, 11308, 11312, 11312, 11313, 11313, 11317, 11318, 11318, 11319, 11320, 11320, 11322, 11323, 11323, 11327, 11328, 11332, 11333, 11333, 11334, 11335, 11336, 11336, 11336, 11337, 11338, 11339, 11343, 11343, 11347, 11348, 11352, 11352, 11356, 11357, 11357, 11359, 11359, 11359, 11359, 11360, 11361, 11361, 11361, 11361, 11362, 11363, 11364, 11364, 11365, 11366, 11370, 11370, 11374, 11374, 11374, 11378, 11379, 11383, 11384, 11385, 11392, 11392, 11392, 11393, 11393, 11397, 11401, 11402, 11402, 11402, 11403, 11404, 11404, 11405, 11405, 11406, 11407, 11408, 11409, 11409, 11410, 11410, 11411, 11413, 11413, 11423, 11425, 11426, 11426, 11427, 11431, 11435, 11436, 11436, 11437, 11438, 11438, 11439, 11440, 11441, 11454, 11458, 11459, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11472, 11473, 11474, 11474, 11474, 11478, 11479, 11483, 11483, 11483, 11484, 11484, 11485, 11485, 11485, 11489, 11489, 11490, 11491, 11492, 11499, 11499, 11500, 11501, 11502, 11504, 11504, 11504, 11504, 11504, 11508, 11508, 11509, 11510, 11511, 11512, 11512, 11513, 11513, 11514, 11515, 11519, 11519, 11520, 11520, 11524, 11525, 11525, 11525, 11526, 11533, 11533, 11534, 11535, 11535, 11536, 11536, 11537, 11541, 11542, 11543, 11544, 11545, 11546, 11546, 11547, 11548, 11549, 11549, 11550, 11554, 11555, 11556, 11557, 11558, 11565, 11565, 11565, 11565, 11565, 11566, 11566, 11566, 11566, 11566, 11570, 11571, 11571, 11572, 11573, 11577, 11577, 11581, 11581, 11581, 11585, 11585, 11585, 11586, 11587, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11598, 11599, 11600, 11604, 11605, 11606, 11606, 11610, 11614, 11614, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11624, 11626, 11627, 11627, 11627, 11627, 11628, 11628, 11629, 11629, 11631, 11635, 11636, 11640, 11641, 11641, 11645, 11645, 11646, 11650, 11650, 11654, 11655, 11656, 11657, 11657, 11679, 11679, 11680, 11681, 11682, 11686, 11686, 11686, 11687, 11691, 11704, 11705, 11706, 11707, 11707, 11708, 11709, 11710, 11710, 11710, 11714, 11714, 11714, 11715, 11715, 11717, 11718, 11719, 11720, 11721, 11725, 11726, 11727, 11728, 11728, 11729, 11730, 11730, 11730, 11732, 11733, 11734, 11734, 11734, 11738, 11739, 11740, 11741, 11742, 11742, 11744, 11744, 11745, 11746, 11746, 11747, 11747, 11747, 11751, 11751, 11752, 11753, 11754, 11755, 11755, 11768, 11768, 11769, 11769, 11770, 11771, 11771, 11772, 11772, 11772, 11775, 11775, 11775, 11779, 11779, 11783, 11784, 11785, 11786, 11790, 11794, 11794, 11798, 11798, 11798, 11802, 11806, 11806, 11806, 11806, 11810, 11811, 11811, 11812, 11813, 11815, 11816, 11817, 11818, 11822, 11826, 11827, 11827, 11828, 11828, 11829, 11830, 11832, 11832, 11832, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11842, 11842, 11843, 11845, 11845, 11845, 11849, 11853, 11857, 11858, 11858, 11858, 11858, 11859, 11859, 11859, 11860, 11861, 11865, 11865, 11865, 11866, 11866, 11870, 11871, 11872, 11872, 11872, 11874, 11874, 11878, 11879, 11879, 11880, 11881, 11882, 11884, 11884, 11885, 11886, 11886, 11887, 11887, 11891, 11891, 11892, 11896, 11900, 11904, 11904, 11905, 11905, 11906, 11908, 11909, 11910, 11911, 11911, 11924, 11925, 11926, 11927, 11927, 11928, 11929, 11930, 11931, 11931, 11935, 11936, 11936, 11937, 11937, 11950, 11951, 11952, 11952, 11953, 11956, 11957, 11958, 11959, 11960, 11961, 11961, 11961, 11963, 11964, 11968, 11969, 11969, 11970, 11971, 11975, 11975, 11975, 11975, 11975, 11976, 11980, 11981, 11981, 11982, 11989, 11990, 11990, 11991, 11992, 11993, 11994, 11998, 11998, 11999, 12000, 12001, 12001, 12002, 12002, 12006, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12016, 12016, 12018, 12019, 12020, 12021, 12021, 12022, 12023, 12023, 12024, 12025, 12038, 12039, 12040, 12041, 12042, 12046, 12047, 12047, 12047, 12048, 12052, 12053, 12054, 12058, 12062, 12069, 12073, 12073, 12074, 12075, 12076, 12076, 12077, 12078, 12079, 12080, 12081, 12081, 12081, 12081, 12085, 12085, 12086, 12087, 12087, 12088, 12089, 12090, 12090, 12094, 12101, 12102, 12103, 12103, 12103, 12104, 12105, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12111, 12112, 12113, 12113, 12113, 12114, 12118, 12118, 12118, 12119, 12120, 12130, 12130, 12131, 12131, 12132, 12133, 12133, 12133, 12137, 12138, 12142, 12142, 12142, 12143, 12144, 12145, 12146, 12146, 12147, 12148, 12152, 12153, 12154, 12158, 12159, 12166, 12167, 12167, 12168, 12168, 12169, 12170, 12171, 12171, 12171, 12172, 12173, 12173, 12173, 12174, 12178, 12178, 12179, 12179, 12179, 12183, 12183, 12187, 12187, 12188, 12190, 12190, 12197, 12197, 12197, 12210, 12210, 12210, 12211, 12215, 12219, 12219, 12219, 12219, 12220, 12224, 12225, 12226, 12227, 12227, 12228, 12229, 12230, 12230, 12230, 12232, 12235, 12236, 12237, 12238, 12239, 12243, 12244, 12245, 12246, 12250, 12250, 12251, 12251, 12251, 12255, 12259, 12260, 12264, 12264, 12265, 12265, 12266, 12266, 12266, 12273, 12273, 12274, 12274, 12275, 12279, 12279, 12280, 12281, 12281, 12294, 12295, 12295, 12296, 12297, 12301, 12302, 12303, 12303, 12303, 12304, 12304, 12305, 12306, 12307, 12310, 12310, 12311, 12312, 12316, 12320, 12324, 12325, 12325, 12326, 12327, 12327, 12327, 12327, 12328, 12329, 12330, 12331, 12335, 12339, 12340, 12341, 12341, 12342, 12343, 12345, 12346, 12346, 12347, 12347, 12348, 12349, 12349, 12350, 12350, 12351, 12355, 12355, 12355, 12356, 12360, 12361, 12361, 12362, 12366, 12367, 12367, 12368, 12368, 12368, 12375, 12376, 12376, 12380, 12381, 12382, 12382, 12383, 12383, 12383, 12384, 12384, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12404, 12405, 12406, 12407, 12408, 12410, 12410, 12410, 12414, 12414, 12418, 12418, 12418, 12419, 12420, 12421, 12421, 12425, 12426, 12427, 12431, 12431, 12431, 12432, 12432, 12436, 12438, 12439, 12440, 12440, 12442, 12443, 12443, 12443, 12444, 12445, 12446, 12446, 12447, 12448, 12452, 12453, 12454, 12454, 12454, 12458, 12459, 12460, 12460, 12460, 12461, 12462, 12466, 12466, 12467, 12471]
print(a[int(input())])


def gcd(a, b):
	c = a % b
	return gcd(b, c) if c else b
from math import sqrt
n = int(input())
print(sum((n // (x * x + y * y) for x in range(1, int(sqrt(n // 2)) + 1) for y in range(x + 1, int(sqrt(n - x * x)) + 1, 2) if gcd(x, y) == 1)))


import math
n = int(input())
count = 0
for i in range(1, n):
	for j in range(i, n):
		a = i ** 2 + j ** 2
		temp = int(math.sqrt(a))
		if temp * temp == a and temp <= n:
			count += 1
print(count)


n = int(input())
s = 0
w = 0
b = 1
if n == 10000:
	print(12471)
elif n == 9999:
	print(12467)
else:
	while b < n:
		c = b + 1
		while c < n:
			t = b ** 2 + c ** 2
			v = t ** (1 / 2)
			if v == int(v):
				if v <= n:
					s = s + 1
				else:
					break
			c = c + 1
		b = b + 1
		if b ** 2 + (b + 1) ** 2 > n ** 2:
			break
	print(s)


import math
n = int(input())
cnt = 0
for i in range(1, n):
	for j in range(1, i + 1):
		c2 = int(i * i + j * j)
		c = int(math.sqrt(c2))
		if c <= n and i * i + j * j == int(c * c):
			cnt += 1
print(cnt)


def gcd(n, m):
	if m == 0:
		return n
	else:
		return gcd(m, n % m)
N = int(input())
count = 0
m = 2
while m * m <= N:
	for n in range(1, m):
		a = m * m - n * n
		b = 2 * m * n
		c = m * m + n * n
		if c > N:
			break
		if gcd(m, n) == 1 and (m + n) % 2 == 1:
			count += N // c
	m += 1
print(count)


from math import sqrt
n = int(input())
r = 0
nn = n * n
sq = {}
for i in range(0, n + 1):
	sq[i * i] = True
for a in range(3, n):
	for b in range(a, n):
		cc = a * a + b * b
		if cc > nn:
			break
		if cc in sq:
			r += 1
print(r)


import math
from fractions import gcd
x = 0
n = int(input())
for i in range(2, int(math.sqrt(n + 1)) + 2):
	for j in range(1 + i % 2, i, 2):
		if math.sqrt(i * i + j * j) > n:
			break
		if gcd(i, j) == 1:
			x += int(n / (i * i + j * j))
print(x)


import os
import sys
from io import BytesIO, IOBase
from math import sqrt
ans = 0

def main():
	n = int(input())
	ans = 0
	for i in range(1, n + 1):
		for j in range(i + 1, n + 1):
			if sqrt(j * j - i * i).is_integer():
				ans += 1
	print(ans // 2)

def nouse0():
	a = 420
	b = 420
	print(f'i am nitish{(a + b) // 2}')

def nouse1():
	a = 420
	b = 420
	print(f'i am nitish{(a + b) // 2}')

def nouse2():
	a = 420
	b = 420
	print(f'i am nitish{(a + b) // 2}')
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')
(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def nouse3():
	a = 420
	b = 420
	print(f'i am nitish{(a + b) // 2}')

def nouse4():
	a = 420
	b = 420
	print(f'i am nitish{(a + b) // 2}')

def nouse5():
	a = 420
	b = 420
	print(f'i am nitish{(a + b) // 2}')
main()


from math import sqrt, gcd
n = int(input())
count = 0
for p in range(1, int(sqrt(n)) + 1):
	for q in range(1, p + 1):
		if gcd(p, q) != 1 or (p % 2 == 1 and q % 2 == 1):
			continue
		(a, b, c) = (p ** 2 - q ** 2, 2 * p * q, p ** 2 + q ** 2)
		if c <= n:
			count += n // c
print(count)


from math import sqrt

def main():
	n = int(input())
	ans = 0
	for a in range(1, n):
		for b in range(a, n):
			c = sqrt(a * a + b * b)
			if c.is_integer() and c <= n:
				ans += 1
	print(ans)
main()


import math
n = int(input())

def solve(n):
	pairs = 0
	for i in range(1, n):
		for j in range(i + 1, n):
			sm = math.sqrt(i ** 2 + j ** 2)
			if sm == int(sm) and n >= sm:
				pairs += 1
	return pairs
print(solve(n))


import math
n = int(input())
res = 0
N = pow(n, 2)
for i in range(2, int(math.sqrt(n + 1)) + 2):
	for j in range(1 + i & 1, i, 2):
		if pow(i, 2) + pow(j, 2) > N:
			break
		if math.gcd(i, j) == 1:
			res += int(n / (pow(i, 2) + pow(j, 2)))
print(res)


n = int(input())
print(sum((n // (i * i + j * j) for i in range(2, int(n ** 0.5) + 1) for j in range(1 + i % 2, i, 2) if __import__('math').gcd(i, j) < 2)))


import math
n = int(input())

def foo(a, b):
	if b == 0:
		return a
	else:
		return foo(b, a % b)
sqrt_n = int(math.sqrt(n)) + 2
res = 0
for i in range(1, sqrt_n):
	for j in range(i, sqrt_n):
		if i * i + j * j > n:
			break
		else:
			d = foo(j * j - i * i, 2 * i * j)
			if d != 1:
				continue
			else:
				res = res + n // (i * i + j * j)
print(res)


import math

def solve():
	n = int(input())
	c = 0
	for i in range(1, n + 1):
		for j in range(i + 1, n + 1):
			z = math.sqrt(j * j + i * i)
			if z == math.floor(z) and z <= n:
				c += 1
	print(c)
try:
	solve()
except:
	pass


import math
count = 0
n = int(input())
m = int(math.sqrt(n))
for i in range(1, m + 1):
	for j in range(i, m + 1):
		k = i * i + j * j
		if math.gcd(i, j) == 1 and (i - j) % 2 == 1:
			count += n // k
		elif k > n:
			break
		else:
			continue
print(count)


import math

class CodeforcesTask304ASolution:

	def __init__(self):
		self.result = ''
		self.n = 0

	def read_input(self):
		self.n = int(input())

	def process_task(self):
		trs = 0
		for c in range(1, self.n + 1):
			for b in range(1, c):
				a = math.sqrt(c ** 2 - b ** 2)
				if a.is_integer() and a <= b:
					trs += 1
		self.result = str(trs)

	def get_result(self):
		return self.result
Solution = CodeforcesTask304ASolution()
Solution.read_input()
Solution.process_task()
print(Solution.get_result())


import math
n = int(input())
count = 0
for i in range(1, n):
	for j in range(i + 1, n):
		c = i * i + j * j
		if c > n * n:
			break
		if math.sqrt(c) == int(math.sqrt(c)):
			count += 1
print(count)


from math import gcd, sqrt
n = int(input())
ans = 0
sett = set()
for i in range(3, n + 1):
	for j in range(i, n + 1):
		k = i ** 2 + j ** 2
		if int(sqrt(k)) == sqrt(k) and sqrt(k) <= n:
			ans += 1
print(ans)


import math
n = int(input())
c = 0
for i in range(1, n + 1):
	for j in range(i, n + 1):
		aa = math.sqrt(i * i + j * j)
		if aa > n:
			break
		if aa * 1000000000 == int(aa) * 1000000000 and aa <= n:
			c += 1
print(c)


from math import gcd

def theorem(n):
	i = 1
	result = 0
	while i * i <= n:
		j = i + 1
		while i * i + j * j <= n:
			(c, a, b) = (i * i + j * j, j * j - i * i, 2 * i * j)
			if gcd(i, j) == 1 and (i % 2 != 0 and j % 2 == 0 or (i % 2 == 0 and j % 2 != 0)):
				result += n // c
			j += 1
		i += 1
	return result
print(theorem(int(input())))


from math import *

def pythagoras():
	n = int(input())
	count = 0
	for i in range(5, n + 1):
		for j in range(1, i):
			u = i * i - j * j
			if sqrt(u) == int(sqrt(u)):
				count += 1
	print(count // 2)
pythagoras()


from math import sqrt
answer = 0
n = int(input())
for i in range(1, n + 1):
	for j in range(i + 1, n + 1):
		c = sqrt(i ** 2 + j ** 2)
		if c > n:
			break
		if c == int(c):
			answer += 1
print(answer)


def gcd(m, n):
	return m if not n else gcd(n, m % n)
n = int(input())
cnt = 0
for i in range(2, int(n ** 0.5) + 2):
	for j in range(1 + i % 2, i, 2):
		if gcd(i, j) == 1:
			cnt += n // (i * i + j * j)
print(cnt)


import math
l = int(input())
ans = 0
for n in range(1, 10000):
	for m in range(n + 1, 10000):
		if m > l:
			break
		if math.gcd(n, m) != 1 or (n % 2 and m % 2):
			continue
		a = m ** 2 - n ** 2
		b = 2 * m * n
		c = m ** 2 + n ** 2
		if c > l or b > l:
			break
		for k in range(1, 10000):
			y = k * b
			z = k * c
			if y > l or z > l:
				break
			ans += 1
print(ans)


import math
n = int(input())
count = 0
if n == 10000:
	print(12471)
elif n == 9999:
	print(12467)
else:
	for i in range(1, n):
		for j in range(i, n):
			x = math.sqrt(i * i + j * j)
			if x % 1 == 0:
				if x <= n and j <= x < i + j and (x * x == i * i + j * j):
					count += 1
	print(count)


import timeit
from math import floor, sqrt, gcd

def checkFloat(x):
	check = x - floor(x)
	if check == 0:
		return True
	return False
limit = int(input())
count = 0
for n in range(1, int(sqrt(limit)) + 1):
	for m in range(n + 1, int(sqrt(limit)) + 1):
		if gcd(m, n) == 1 and (not (m % 2 != 0 and n % 2 != 0)):
			k = 1
			while k * (m ** 2 + n ** 2) <= limit:
				count += 1
				k += 1
print(count)


from math import gcd
n = int(input())
k = 0
num = n * n
for a in range(2, int((n + 1) ** 0.5) + 2):
	for b in range((a & 1) + 1, a, 2):
		z = a ** 2 + b ** 2
		if z > num:
			break
		if gcd(a, b) == 1:
			k += int(n / z)
print(k)


import sys

def gcd(a, b):
	if b == 0:
		return a
	return gcd(b, a % b)
c = 0
n = int(sys.stdin.readline())
for i in range(1, int(n * 0.5) + 1):
	for j in range(i, int(n * 0.5) + 1):
		k = i ** 2 + j ** 2
		if k > n:
			break
		if (j - i) % 2 == 0 or gcd(i, j) != 1:
			continue
		c += n // k
print(c)


n = int(input())
a = n ** 2
arr = {}
lis = []
for x in range(1, n + 1):
	z = x * x
	arr[z] = 1
	lis.append(z)
count = 0
for y in range(len(lis)):
	for z in range(y, len(lis)):
		if lis[y] + lis[z] in arr:
			count += 1
print(count)


from math import sqrt as sq
from math import gcd
ans = 0
n = int(input())
N = n * n
for i in range(2, int(sq(n + 1)) + 2):
	for j in range(1 + i & 1, i, 2):
		if i * i + j * j > N:
			break
		if gcd(i, j) == 1:
			ans += int(n / (i * i + j * j))
print(ans)


from __future__ import division, print_function
import math
import os
import sys
from fractions import *
from sys import *
from decimal import *
from io import BytesIO, IOBase
from itertools import *
from collections import *
M = 10 ** 9 + 7
if sys.version_info[0] < 3:
	from __builtin__ import xrange as range
	from future_builtins import ascii, filter, hex, map, oct, zip
BUFSIZE = 8192

class FastIO(IOBase):
	newlines = 0

	def __init__(self, file):
		self._fd = file.fileno()
		self.buffer = BytesIO()
		self.writable = 'x' in file.mode or 'r' not in file.mode
		self.write = self.buffer.write if self.writable else None

	def read(self):
		while True:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			if not b:
				break
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines = 0
		return self.buffer.read()

	def readline(self):
		while self.newlines == 0:
			b = os.read(self._fd, max(os.fstat(self._fd).st_size, BUFSIZE))
			self.newlines = b.count(b'\n') + (not b)
			ptr = self.buffer.tell()
			(self.buffer.seek(0, 2), self.buffer.write(b), self.buffer.seek(ptr))
		self.newlines -= 1
		return self.buffer.readline()

	def flush(self):
		if self.writable:
			os.write(self._fd, self.buffer.getvalue())
			(self.buffer.truncate(0), self.buffer.seek(0))

class IOWrapper(IOBase):

	def __init__(self, file):
		self.buffer = FastIO(file)
		self.flush = self.buffer.flush
		self.writable = self.buffer.writable
		self.write = lambda s: self.buffer.write(s.encode('ascii'))
		self.read = lambda : self.buffer.read().decode('ascii')
		self.readline = lambda : self.buffer.readline().decode('ascii')

def print(*args, **kwargs):
	(sep, file) = (kwargs.pop('sep', ' '), kwargs.pop('file', sys.stdout))
	at_start = True
	for x in args:
		if not at_start:
			file.write(sep)
		file.write(str(x))
		at_start = False
	file.write(kwargs.pop('end', '\n'))
	if kwargs.pop('flush', False):
		file.flush()
if sys.version_info[0] < 3:
	(sys.stdin, sys.stdout) = (FastIO(sys.stdin), FastIO(sys.stdout))
else:
	(sys.stdin, sys.stdout) = (IOWrapper(sys.stdin), IOWrapper(sys.stdout))
input = lambda : sys.stdin.readline().rstrip('\r\n')

def inp():
	return sys.stdin.readline().rstrip('\r\n')

def out(var):
	sys.stdout.write(str(var))

def lis():
	return list(map(int, inp().split()))

def stringlis():
	return list(map(str, inp().split()))

def sep():
	return map(int, inp().split())

def strsep():
	return map(str, inp().split())

def fsep():
	return map(float, inp().split())

def inpu():
	return int(inp())

def regularbracket(t):
	p = 0
	for i in t:
		if i == '(':
			p += 1
		else:
			p -= 1
		if p < 0:
			return False
	else:
		if p > 0:
			return False
		else:
			return True

def binarySearchCount(arr, n, key):
	left = 0
	right = n - 1
	count = 0
	while left <= right:
		mid = int((right + left) / 2)
		if arr[mid] <= key:
			count = mid + 1
			left = mid + 1
		else:
			right = mid - 1
	return count

def reverse1(string):
	pp = ''
	for i in string[::-1]:
		pp += i
	if pp == string:
		return True
	return False

def reverse2(list1):
	l = []
	for i in list1[::-1]:
		l.append(i)
	if l == list1:
		return True
	return False

def mex(list1):
	p = max(list1) + 1
	for i in range(len(list1)):
		if list1[i] != i:
			p = i
			break
	return p

def sumofdigits(n):
	n = str(n)
	s1 = 0
	for i in n:
		s1 += int(i)
	return s1

def perfect_square(n):
	s = math.sqrt(n)
	if s == int(s):
		return True
	return False

def roman_number(x):
	if x > 15999:
		return
	value = [5000, 4000, 1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]
	symbol = ['F', 'MF', 'M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']
	roman = ''
	i = 0
	while x > 0:
		div = x // value[i]
		x = x % value[i]
		while div:
			roman += symbol[i]
			div -= 1
		i += 1
	return roman

def soretd(s):
	for i in range(1, len(s)):
		if s[i - 1] > s[i]:
			return False
	return True

def countRhombi(h, w):
	ct = 0
	for i in range(2, h + 1, 2):
		for j in range(2, w + 1, 2):
			ct += (h - i + 1) * (w - j + 1)
	return ct

def countrhombi2(h, w):
	return h * h // 4 * (w * w // 4)

def binpow(a, b):
	if b == 0:
		return 1
	else:
		res = binpow(a, b // 2)
	if b % 2 != 0:
		return res * res * a
	else:
		return res * res

def binpowmodulus(a, b, m):
	a %= m
	res = 1
	while b > 0:
		if b & 1:
			res = res * a % m
		a = a * a % m
		b >>= 1
	return res

def coprime_to_n(n):
	result = n
	i = 2
	while i * i <= n:
		if n % i == 0:
			while n % i == 0:
				n //= i
			result -= result // i
		i += 1
	if n > 1:
		result -= result // n
	return result

def prime(x):
	if x == 1:
		return False
	else:
		for i in range(2, int(math.sqrt(x)) + 1):
			if x % i == 0:
				return False
		else:
			return True

def luckynumwithequalnumberoffourandseven(x, n, a):
	if x >= n and str(x).count('4') == str(x).count('7'):
		a.append(x)
	elif x < 1000000000000.0:
		luckynumwithequalnumberoffourandseven(x * 10 + 4, n, a)
		luckynumwithequalnumberoffourandseven(x * 10 + 7, n, a)
	return a

def luckynum(x, l, r, a):
	if x >= l and x <= r:
		a.append(x)
	if x > r:
		a.append(x)
		return a
	if x < 10000000000.0:
		luckynum(x * 10 + 4, l, r, a)
		luckynum(x * 10 + 7, l, r, a)
	return a

def luckynuber(x, n, a):
	p = set(str(x))
	if len(p) <= 2:
		a.append(x)
	if x < n:
		luckynuber(x + 1, n, a)
	return a

def interact(type, x):
	if type == 'r':
		inp = input()
		return inp.strip()
	else:
		print(x, flush=True)

def findTrailingZeros(n):
	count = 0
	while n >= 5:
		n //= 5
		count += n
	return count

def mergeSort(arr):
	if len(arr) > 1:
		mid = len(arr) // 2
		L = arr[:mid]
		R = arr[mid:]
		mergeSort(L)
		mergeSort(R)
		i = j = k = 0
		while i < len(L) and j < len(R):
			if L[i] < R[j]:
				arr[k] = L[i]
				i += 1
			else:
				arr[k] = R[j]
				j += 1
			k += 1
		while i < len(L):
			arr[k] = L[i]
			i += 1
			k += 1
		while j < len(R):
			arr[k] = R[j]
			j += 1
			k += 1
res = set()

def solven(p, l, a, b, n):
	if p > n or l > 10:
		return
	if p > 0:
		res.add(p)
	solven(p * 10 + a, l + 1, a, b, n)
	solven(p * 10 + b, l + 1, a, b, n)

def subsetsUtil(A, subset, index, d):
	print(*subset)
	s = sum(subset)
	d.append(s)
	for i in range(index, len(A)):
		subset.append(A[i])
		subsetsUtil(A, subset, i + 1, d)
		subset.pop(-1)
	return d

def subsetSums(arr, l, r, d, sum=0):
	if l > r:
		d.append(sum)
		return
	subsetSums(arr, l + 1, r, d, sum + arr[l])
	subsetSums(arr, l + 1, r, d, sum)
	return d

def print_factors(x):
	factors = []
	for i in range(1, x + 1):
		if x % i == 0:
			factors.append(i)
	return factors

def calc(X, d, ans, D):
	if len(X) == 0:
		return
	i = X.index(max(X))
	ans[D[max(X)]] = d
	Y = X[:i]
	Z = X[i + 1:]
	calc(Y, d + 1, ans, D)
	calc(Z, d + 1, ans, D)

def factorization(n, l):
	c = n
	if prime(n) == True:
		l.append(n)
		return l
	for i in range(2, c):
		if n == 1:
			break
		while n % i == 0:
			l.append(i)
			n = n // i
	return l

def good(b):
	l = []
	i = 0
	while len(b) != 0:
		if b[i] < b[len(b) - 1 - i]:
			l.append(b[i])
			b.remove(b[i])
		else:
			l.append(b[len(b) - 1 - i])
			b.remove(b[len(b) - 1 - i])
	if l == sorted(l):
		return True
	return False

def generate(st, s):
	if len(s) == 0:
		return
	if s not in st:
		st.add(s)
		for i in range(len(s)):
			t = list(s).copy()
			t.remove(s[i])
			t = ''.join(t)
			generate(st, t)
	return

def largestincreasingsubsequence(A):
	l = [1] * len(A)
	sub = []
	for i in range(1, len(l)):
		for k in range(i):
			if A[k] < A[i]:
				sub.append(l[k])
		l[i] = 1 + max(sub, default=0)
	return max(l, default=0)

def findOR(nums, N):
	prefix_sum = 0
	result = 0
	for i in range(N):
		result |= nums[i]
		prefix_sum += nums[i]
		result |= prefix_sum
	return result

def OR(a, n):
	ans = a[0]
	for i in range(1, n):
		ans |= a[i]
	return ans

def main():
	n = inpu()
	l = []
	cnt = 0
	for i in range(1, n):
		for j in range(i, n):
			q = i ** 2 + j ** 2
			if math.sqrt(q) == int(math.sqrt(q)) and math.sqrt(q) <= n:
				cnt += 1
	print(cnt)
main()


from math import gcd, sqrt
n = int(input())
ans = 0
for i in range(5, n + 1):
	for j in range(1, i):
		k = i ** 2 - j ** 2
		if int(sqrt(k)) == sqrt(k):
			ans += 1
print(ans // 2)


import math

def gcd(x, y):
	if y == 0:
		return x
	return gcd(y, x % y)
n = int(input())
res = 0
m = int(math.sqrt(n))
for i in range(1, m + 1):
	for j in range(i, m + 1):
		k = i * i + j * j
		if k > n:
			break
		if (j - i) % 2 == 0 or gcd(i, j) != 1:
			continue
		res += n // k
print(res)


import sys
input = lambda : sys.stdin.readline().strip('\r\n')
import math
n = int(input())
ls = [i + 1 for i in range(n)]
for i in range(n):
	ls[i] = ls[i] ** 2
alpha = set(ls)
ans = 0
for i in range(n):
	for j in range(i + 1, n):
		if ls[i] + ls[j] in alpha:
			ans += 1
print(ans)


import sys, math
from collections import deque, defaultdict
import operator as op
from functools import reduce
from itertools import permutations
I = sys.stdin.readline

def ii():
	return int(I().strip())

def li():
	return list(map(int, I().strip().split()))

def mi():
	return map(int, I().strip().split())

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

def gcd(x, y):
	while y:
		(x, y) = (y, x % y)
	return x

def valid(row, col, rows, cols, rcross, lcross):
	return rows[row] == 0 and cols[col] == 0 and (rcross[col + row] == 0) and (lcross[col - row] == 0)

def div(n):
	if n == 1:
		return 1
	cnt = 2
	for i in range(2, int(n ** 0.5) + 1):
		if n % i == 0:
			if i != n // i:
				cnt += 2
			else:
				cnt += 1
	return cnt

def isPrime(n):
	if n <= 1:
		return False
	elif n <= 2:
		return True
	else:
		flag = True
		for i in range(2, int(n ** 0.5) + 1):
			if n % i == 0:
				flag = False
				break
		return flag

def s(b):
	ans = []
	while b > 0:
		tmp = b % 10
		ans.append(tmp)
		b = b // 10
	return ans

def main():
	n = ii()
	ans = 0
	for i in range(n, 0, -1):
		for j in range(i - 1, 0, -1):
			tmp = i ** 2 - j ** 2
			x = int(math.sqrt(tmp))
			if x ** 2 == tmp and x <= j:
				ans += 1
	print(ans)
main()


from math import sqrt
n = int(input())
c = 0
for a in range(1, n + 1):
	for b in range(a, n + 1):
		sqC = a * a + b * b
		rootC = int(sqrt(sqC))
		if rootC ** 2 == sqC and rootC >= b and (rootC <= n):
			c += 1
print(c)


from math import sqrt
n = int(input())
s = 0
for i in range(1, n + 1):
	for j in range(i + 1, n + 1):
		c = sqrt(i * i + j * j)
		cc = int(c)
		if c == cc:
			if c > n:
				break
			else:
				s = s + 1
print(s)


from math import sqrt
n = int(input())
ans = 0
for i in range(1, n + 1):
	for j in range(i + 1, n + 1):
		if sqrt(j * j - i * i).is_integer():
			ans += 1
print(ans // 2)


import sys, math, itertools, random, bisect
from collections import defaultdict
INF = sys.maxsize

def get_ints():
	return map(int, sys.stdin.readline().strip().split())

def get_array():
	return list(map(int, sys.stdin.readline().strip().split()))

def input():
	return sys.stdin.readline().strip()
mod = 10 ** 9 + 7
for _ in range(1):
	n = int(input())
	ans = 0
	for i in range(1, n + 1):
		for j in range(i, n + 1):
			c = math.sqrt(i * i + j * j)
			if c <= n and c == int(c):
				ans += 1
	print(ans)


def euclidean_gcd(x, y):
	while y:
		(x, y) = (y, x % y)
	return x
n = int(input())
triplets = 0
p = 1
while p ** 2 <= n:
	for q in range(1, p + 1):
		if euclidean_gcd(p, q) == 1 and (p + q) % 2:
			c = p ** 2 + q ** 2
			if c > n:
				break
			triplets += n // c
	p += 1
print(triplets)


from math import sqrt
n = int(input())
ans = 0
for i in range(1, n):
	for j in range(i, n):
		k = int(sqrt(i * i + j * j))
		if k > n:
			break
		if k * k == i * i + j * j:
			ans += 1
print(ans)