# hanoi
# 移动第n个圆盘到z柱，首先要把前n-1个圆盘从x柱移动到y柱上
# 在移动n-1个圆盘到y柱上时，需要把z柱看作y柱
# 移动n-1个圆盘到y柱，需要移动n-2个圆盘从x柱移动到z柱
# 移动n-2个圆盘到z柱，需要移动n-3个圆盘从x柱移动到y柱
# .........
# 移动2个圆盘到目标柱（第三根），需要移动1个圆盘从x柱移动到中间柱
# 移动一个圆盘到目标柱（第三根），需要x柱 -> 目标柱
# 最后需要把y柱作为起始柱，x作为中间柱，z作为目标柱


def hanio(n, x, y, z):
    if n == 1:
        print("%c -> %c" % (x, z))
    else:
        hanio(n-1, x, z, y)
        print("%c -> %c" % (x, z))
        hanio(n-1, y, x, z)


piles = int(input("请输入汉诺塔的层数:"))
hanio(piles, 'X', 'Y', 'Z')
