import math
from functools import cmp_to_key, partial
def compare(a1,a2):
# SORTING QUERIES
global BLOCK_SIZE, data
print(a1, a2)
print(data[a1])
if data[a1][0]//BLOCK_SIZE != data[a2][0]//BLOCK_SIZE:
return data[a1][0]//BLOCK_SIZE < data[a2][0]//BLOCK_SIZE
return data[a1][1] < data[a2][1]
a = [1, 1, 2, 1, 3, 4, 5, 2, 8]
BLOCK_SIZE = math.ceil(math.sqrt(len(a)))
# QUERIES
data = [(0, 4), (1, 3), (2, 4)]
print(data)
data.sort(key=lambda t: (t[0] // BLOCK_SIZE, t[1]))
# res = sorted(data, key=cmp_to_key(compare))
print(res)
# print(data)
aW1wb3J0IG1hdGgKZnJvbSBmdW5jdG9vbHMgaW1wb3J0IGNtcF90b19rZXksIHBhcnRpYWwKCmRlZiBjb21wYXJlKGExLGEyKToKCSMgU09SVElORyBRVUVSSUVTIAoJZ2xvYmFsIEJMT0NLX1NJWkUsIGRhdGEKCXByaW50KGExLCBhMikKCXByaW50KGRhdGFbYTFdKQoJaWYgZGF0YVthMV1bMF0vL0JMT0NLX1NJWkUgIT0gZGF0YVthMl1bMF0vL0JMT0NLX1NJWkU6CgkJcmV0dXJuIGRhdGFbYTFdWzBdLy9CTE9DS19TSVpFIDwgZGF0YVthMl1bMF0vL0JMT0NLX1NJWkUKCQkKCXJldHVybiBkYXRhW2ExXVsxXSA8IGRhdGFbYTJdWzFdCgphID0gWzEsIDEsIDIsIDEsIDMsIDQsIDUsIDIsIDhdCkJMT0NLX1NJWkUgPSBtYXRoLmNlaWwobWF0aC5zcXJ0KGxlbihhKSkpCiMgUVVFUklFUwpkYXRhID0gWygwLCA0KSwgKDEsIDMpLCAoMiwgNCldCnByaW50KGRhdGEpCmRhdGEuc29ydChrZXk9bGFtYmRhIHQ6ICh0WzBdIC8vIEJMT0NLX1NJWkUsIHRbMV0pKQojIHJlcyA9IHNvcnRlZChkYXRhLCBrZXk9Y21wX3RvX2tleShjb21wYXJlKSkKcHJpbnQocmVzKQojIHByaW50KGRhdGEp