PROGRAM HANOI_TOWER;
VAR N:INTEGER;VAR C:INTEGER;VAR D:BOOLEAN;
PROCEDURE OUTF(A,B:INTEGER);
BEGIN
WRITE(A,'-->',B,' ');
END;
PROCEDURE HANOI(K:INTEGER;VAR L:INTEGER;VAR A:BOOLEAN);
VAR M,I,H:INTEGER;VAR J:BOOLEAN;
BEGIN
IF K=0 THEN EXIT;
CASE L OF
1:A:=FALSE;
3:A:=TRUE;
END;
J:=A;H:=L;
FOR I:=1 TO 2 DO
BEGIN
HANOI(K-1,H,J);
IF A=FALSE THEN M:=L+1 ELSE M:=L-1;
OUTF(L,M);
L:=M;
END;
HANOI(K-1,H,J);
END;
BEGIN
READLN(N);
C:=1;
HANOI(N,C,D);
END.