Why does this return NZEC ? (BSTOPS)

global tree
tree = {}

def checkRight(num , i):
global tree
try:
if tree[2i + 1] < num:
return 1
else:
return 0
except:
tree[2
i + 1] = num
print(2*i+1)
return 2

def checkLeft(num , i):
global tree
try:
if tree[2 * i] < num:
return 1
else:
return 0
except:
tree[2 * i] = num
print(2*i)
return 2

def insert(num):
global tree
n = 0
i = 1
if len(tree) == 0:
tree[1] = num
print(‘1’)
else:
if tree[1] < num:
n = checkRight(num , i)
i = 2i + 1
else:
n = checkLeft(num , i)
i = 2
i
while(n != 2):
if n == 0:
n = checkLeft(num , i)
i = 2i
elif n == 1:
n = checkRight(num , i)
i = 2
i + 1
return

def main():
global tree
for _ in range(int(input())):
query = input()
num = query.split()
if ‘i’ in query:
insert(int(num[1]))
elif ‘d’ in query:
temp = list(tree.keys())[list(tree.values()).index(int(num[1]))]
print(temp)
del tree[temp]

if name == ‘main’:
main()