import collections
import math
def cmpr(a, b):
print(a, b)
if a[0]/r != b[0]/r:
return a[0]/r < b[0]/r
return a[1] < b[1]
a = [1, 1, 2, 1, 3, 4, 5, 2, 8];
r = math.sqrt(len(a))
d_query = {0:[0, 4], 1:[5, 7], 2:[2, 4], 3:[5, 8]}
od = collections.OrderedDict(sorted(d_query.items(), cmpr, key= lambda x: x[1]))
aW1wb3J0IGNvbGxlY3Rpb25zCmltcG9ydCBtYXRoCgpkZWYgY21wcihhLCBiKToKICAgIHByaW50KGEsIGIpCiAgICBpZiBhWzBdL3IgIT0gYlswXS9yOgogICAgICAgIHJldHVybiBhWzBdL3IgPCBiWzBdL3IKICAgIHJldHVybiBhWzFdIDwgYlsxXQoKYSAgID0gWzEsIDEsIDIsIDEsIDMsIDQsIDUsIDIsIDhdOwpyID0gbWF0aC5zcXJ0KGxlbihhKSkKZF9xdWVyeSA9IHswOlswLCA0XSwgMTpbNSwgN10sIDI6WzIsIDRdLCAzOls1LCA4XX0Kb2QgPSBjb2xsZWN0aW9ucy5PcmRlcmVkRGljdChzb3J0ZWQoZF9xdWVyeS5pdGVtcygpLCBjbXByLCBrZXk9IGxhbWJkYSB4OiB4WzFdKSk=
([5, 7], [0, 4])
([2, 4], [5, 7])
([5, 8], [2, 4])