import string
ar = [0] * 10000
def a(i, v, l=0, r=100, kek=1):
ar[kek] += v
if l != r:
if i <= (l + r) // 2:
a(i, v, l, (l + r) // 2, kek * 2)
else:
a(i, v, (l + r) // 2 + 1, r, kek * 2 + 1)
def s(L, R, l=0, r=100, kek=1):
if R == r and l == L:
return ar[kek]
if l > r:
return 0
return s(L, min(R, (l + r) // 2), l, (l + r) // 2, kek * 2) + s(max(L, (l + r) // 2 + 1), R, (l + r) // 2 + 1, r,
kek * 2 + 1)
for i, vv in enumerate('TWISTER'):
for j in string.ascii_uppercase:
vv = vv.replace(j, '2')
a(i, int(vv))
print(s(0, 1000))
>14