from functools import reduce

def encode(n):
	return encode((n-1)//26)+chr((n-1)%26+65) if n>0 else ''

def decode(s):
	return reduce(lambda x,y:x*26+y-64,map(ord,'\0'+s))

def conv(text):
	print( '{} => {}'.format( text, encode(int(text)) if text.isdigit() else decode(text)) )

conv('A')
conv('AA')
conv('ABC')
conv('26')
conv('266379')
