생성일: 2022년 2월 12일 오후 4:11
# 알파코드 (DFS)
import sys
#sys.stdin = open("in2.txt", "rt")
def numToChr(num):
return chr(num+64)
def DFS(L, pre):
global cnt
if L == len(code):
if pre == 0:
for x in res:
if x != "":
print(x, end='')
print()
cnt += 1
else:
if pre == 0 and code[L] != 0:
#채택
res[L] = numToChr(code[L])
DFS(L+1, 0)
res[L] = ""
#채택x
DFS(L+1, code[L])
else:
if 10*pre+code[L] > 26:
pass
else:
if pre != 0:
#무조건 채택
res[L] = numToChr(10*pre+code[L])
DFS(L+1, 0)
res[L] = ""
if __name__ == "__main__":
code = list(map(int,list(input())))
res = [""]*len(code)
cnt = 0
DFS(0, 0)
print(cnt)
import sys
sys.stdin=open("input.txt", "r")
def DFS(L, P):
global cnt
if L==n:
cnt+=1
for j in range(P):
print(chr(res[j]+64), end='')
print()
else:
for i in range(1, 27):
if code[L]==i:
res[P]=i
DFS(L+1, P+1)
elif i>=10 and code[L]==i//10 and code[L+1]==i%10:
res[P]=i
DFS(L+2, P+1)
if __name__=="__main__":
code=list(map(int, input()))
n=len(code)
code.insert(n, -1)
res=[0]*(n+3)
cnt=0
DFS(0, 0)
print(cnt)