def merge_sort(arr,s):
global cnt
n = len(arr)
if n <= 1:
return arr
mid=n/2
first_half = merge_sort(arr[0:mid],s)
second_half = merge_sort(arr[mid:n],s)
temp=merge(first_half,second_half,s)
return temp
def merge(arr1, arr2,s):
global cnt
result = []
while len(arr1) > 0 and len(arr2) > 0:
if s[cnt]=='1':
result.append(arr1[0])
cnt=cnt+1
arr1=arr1[1:]
else:
result.append(arr2[0])
cnt=cnt+1
arr2=arr2[1:]
result.extend(arr1)
result.extend(arr2)
return result
st=""
for i in range(10):
st+='+'
st+="[>+++>"
for i in range(6):
st+='+'
st+='>'
for i in range(8):
st+='+'
st+='>'
for i in range(10):
st+='+'
st+='>'
for i in range(11):
st+='+'
activities = { 8 : 'Sleeping',
9 : 'Commuting',
17 : 'Working',
18 : 'Commuting',
20 : 'Eating',
22 : 'Resting' }
for i in range(5):
st+='<'
st+="-]>>"
for i in range(8):
st+='+'
st+='.+.'
TibD00m = { 8 : 'Work',
9 : 'Tension',
17 : 'Working',
18 : 'Bahk',
20 : 'ch',
22 : 'od' }
for i in range(4):
st+='-'
st+='.'
for i in range(19):
st+='+'
st+='.'
for i in range(12):
st+='-'
st+='.'
k=""
for i in range(145):
k=k+chr((65+(i%26)))
for i in range(6):
st+='-'
st+='.'
for i in range(10):
st+='+'
st+=".+++..--.++++++."
k=""
for i in range(145):
k=k+chr((65+(i%26)))
ZGVmIG1lcmdlX3NvcnQoYXJyLHMpOgoJZ2xvYmFsIGNudAoJbiA9IGxlbihhcnIpCglpZiBuIDw9IDE6CgkJcmV0dXJuIGFycgoJbWlkPW4vMgoJZmlyc3RfaGFsZiA9IG1lcmdlX3NvcnQoYXJyWzA6bWlkXSxzKQoJc2Vjb25kX2hhbGYgPSBtZXJnZV9zb3J0KGFyclttaWQ6bl0scykKCXRlbXA9bWVyZ2UoZmlyc3RfaGFsZixzZWNvbmRfaGFsZixzKQoJcmV0dXJuIHRlbXAKCmRlZiBtZXJnZShhcnIxLCBhcnIyLHMpOgoJZ2xvYmFsIGNudAoJcmVzdWx0ID0gW10KCXdoaWxlIGxlbihhcnIxKSA+IDAgYW5kIGxlbihhcnIyKSA+IDA6CgkJaWYgc1tjbnRdPT0nMSc6CgkJCXJlc3VsdC5hcHBlbmQoYXJyMVswXSkKCQkJY250PWNudCsxCgkgCQlhcnIxPWFycjFbMTpdCgkgCWVsc2U6CgkJCXJlc3VsdC5hcHBlbmQoYXJyMlswXSkKCQkJY250PWNudCsxCgkJCWFycjI9YXJyMlsxOl0KCXJlc3VsdC5leHRlbmQoYXJyMSkKCXJlc3VsdC5leHRlbmQoYXJyMikKCXJldHVybiByZXN1bHQKCgpzdD0iIgpmb3IgaSBpbiByYW5nZSgxMCk6CglzdCs9JysnCgpzdCs9Ils+KysrPiIKZm9yIGkgaW4gcmFuZ2UoNik6CglzdCs9JysnCnN0Kz0nPicKZm9yIGkgaW4gcmFuZ2UoOCk6CglzdCs9JysnCnN0Kz0nPicKZm9yIGkgaW4gcmFuZ2UoMTApOgoJc3QrPScrJwpzdCs9Jz4nCmZvciBpIGluIHJhbmdlKDExKToKCXN0Kz0nKycKCmFjdGl2aXRpZXMgPSB7IDggOiAnU2xlZXBpbmcnLAoJOSA6ICdDb21tdXRpbmcnLAoJMTcgOiAnV29ya2luZycsCgkxOCA6ICdDb21tdXRpbmcnLAoJMjAgOiAnRWF0aW5nJywKCTIyIDogJ1Jlc3RpbmcnIH0KCmZvciBpIGluIHJhbmdlKDUpOgoJc3QrPSc8JwpzdCs9Ii1dPj4iCmZvciBpIGluIHJhbmdlKDgpOgoJc3QrPScrJwpzdCs9Jy4rLicKClRpYkQwMG0gPSB7IDggOiAnV29yaycsCgk5IDogJ1RlbnNpb24nLAoJMTcgOiAnV29ya2luZycsCgkxOCA6ICdCYWhrJywKCTIwIDogJ2NoJywKCTIyIDogJ29kJyB9CgkKZm9yIGkgaW4gcmFuZ2UoNCk6CglzdCs9Jy0nCnN0Kz0nLicKZm9yIGkgaW4gcmFuZ2UoMTkpOgoJc3QrPScrJwpzdCs9Jy4nCmZvciBpIGluIHJhbmdlKDEyKToKCXN0Kz0nLScKc3QrPScuJwoKaz0iIgpmb3IgaSBpbiByYW5nZSgxNDUpOgoJaz1rK2NocigoNjUrKGklMjYpKSkKCQpmb3IgaSBpbiByYW5nZSg2KToKCXN0Kz0nLScKc3QrPScuJwpmb3IgaSBpbiByYW5nZSgxMCk6CglzdCs9JysnCnN0Kz0iLisrKy4uLS0uKysrKysrLiIKCms9IiIKZm9yIGkgaW4gcmFuZ2UoMTQ1KToKCWs9aytjaHIoKDY1KyhpJTI2KSkpCgoJCgo=