'''
Ханойская башня -- одна из широко известных головоломок, условие которой состоит в следующем:

Имеется три стержня (пронумеруем их числами 1, 2 и 3). На первом стержне находится n колец с радиусами от 1 до n.
Кольца отсортированы по радиусу, и наибольшее кольцо лежит ниже всех.

Вам требуется найти и записать алгоритм переноса всех n колец с первого стержня на третий по следующим правилам:
- за один ход можно переносить только одно кольцо;
- нельзя класть большее кольцо на меньшее.

Программа должна вывести на экран кратчайшую последовательность действий, необходимую для того, чтобы перенести
все кольца с первого стержня на третий.

Формат ввода:
Строка, содержащая положительное целое число n.

Формат вывода:
Порядок действий для решения головоломки. Каждое действие записывается на отдельной строке. Действие записывается
в формате "номер стержня, с которого снимаем кольцо" - "номер стержня, на который надеваем кольцо".

Sample Input 1:
    2

Sample Output 1:
    1 - 2
    1 - 3
    2 - 3

Sample Input 2:
    1

Sample Output 2:
    1 - 3
'''

def hanoi(n, start='1', end='3', middle='2'):
    if n > 0:
        hanoi(n - 1, start, middle, end)
        print(start + ' - ' + end)
        hanoi(n - 1, middle, end, start)

hanoi(int(input()))
9f93408512274482117d4455d80d4cb1d5a7d4e2
<mask token>

<mask token>


def hanoi(n, start='1', end='3', middle='2'):
    if n > 0:
        hanoi(n - 1, start, middle, end)
        print(start + ' - ' + end)
        hanoi(n - 1, middle, end, start)


<mask token>

<mask token>


def hanoi(n, start='1', end='3', middle='2'):
    if n > 0:
        hanoi(n - 1, start, middle, end)
        print(start + ' - ' + end)
        hanoi(n - 1, middle, end, start)


hanoi(int(input()))

'''
Ханойская башня -- одна из широко известных головоломок, условие которой состоит в следующем:

Имеется три стержня (пронумеруем их числами 1, 2 и 3). На первом стержне находится n колец с радиусами от 1 до n.
Кольца отсортированы по радиусу, и наибольшее кольцо лежит ниже всех.

Вам требуется найти и записать алгоритм переноса всех n колец с первого стержня на третий по следующим правилам:
- за один ход можно переносить только одно кольцо;
- нельзя класть большее кольцо на меньшее.

Программа должна вывести на экран кратчайшую последовательность действий, необходимую для того, чтобы перенести
все кольца с первого стержня на третий.

Формат ввода:
Строка, содержащая положительное целое число n.

Формат вывода:
Порядок действий для решения головоломки. Каждое действие записывается на отдельной строке. Действие записывается
в формате "номер стержня, с которого снимаем кольцо" - "номер стержня, на который надеваем кольцо".

Sample Input 1:
    2

Sample Output 1:
    1 - 2
    1 - 3
    2 - 3

Sample Input 2:
    1

Sample Output 2:
    1 - 3
'''

def hanoi(n, start='1', end='3', middle='2'):
    if n > 0:
        hanoi(n - 1, start, middle, end)
        print(start + ' - ' + end)
        hanoi(n - 1, middle, end, start)

hanoi(int(input()))