# 종말의 숫자란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수. 제일 작은 종말의 숫자는 666이고, 그 다음으로 큰 수는 1666, 2666, 3666,...
# 첫번째 영화 제목은 666, 두번째 영화 제목은 1666... 이런식으로 이름 지음
# 즉, n번째 영화의 제목 == n번째로 작은 종말의 숫자
# 출력해야하는 것은 n번째 영화 제목에 들어간 종말의 숫자

n = int(input())    # 입력값은 n으로 주어짐.(n은 n번째 영화 제목을 뜻함)

count = 0   # 제목에 666이 들어간게 나오면 횟수 추가하는 변수 지정(몇번째에 나왔는지 확인해야하니까)
name = 666  # 영화제목에서 666있는지 찾아야 하니까 변수 지정.(666부터 시작하는 이유는 5제일 작은 종말의 수이기 떄문)
while True:    # 666을 찾기위해 무한반복 할건데
    if '666' in str(name):  # 제목에 666이 있으면
        count += 1  # count(666나온 횟수 저장하는 변수)에 + 1
    if count == n:  # 그렇게 더한 count와 제일 처음 받은 입력값 n이 같으면 / 다르면
        print(name)     # 제목 출력하고 / 여긴 건너뛰고
        break   # while 반복문 탈출
    name += 1   #  / 여기로 와서 name에 1 증가시켜 다시 반복문 실행해서 count == n 될때까지 반복.


# Brute Force 무식하게 풀기
# 모든 경우의 수를 컴퓨터의 빠른 계산 능력을 이용해서 컴퓨터에게 계산 시키고, 그 중 원하는 답을 얻는 방법
# 모든 경우의 수를 다 찾아보니까 정답을 찾을 수 밖에 없지만 데이터의 양이 많아지면 비효율
# 자료구조 마다 부르트포스를 적용하는 방법이 다른데
# 선형구조는 순차탐색, 비선형 구조는 bfs(넓이 우선 탐색), dfs(깊이 우선 탐색)이 있음.
# 순차탐색의 예를 들자면 반 전체 학생을 운동장에 세워놓고 처음부터 끝까지 한명씩 키를 재서 180이 넘는 학생을 한쪽으로 열외하는 것.
ddf71ab95655134a656dd073c0ad1aa734a102b1
<mask token>

<mask token>
while True:
    if '666' in str(name):
        count += 1
    if count == n:
        print(name)
        break
    name += 1

n = int(input())
count = 0
name = 666
while True:
    if '666' in str(name):
        count += 1
    if count == n:
        print(name)
        break
    name += 1

# 종말의 숫자란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수. 제일 작은 종말의 숫자는 666이고, 그 다음으로 큰 수는 1666, 2666, 3666,...
# 첫번째 영화 제목은 666, 두번째 영화 제목은 1666... 이런식으로 이름 지음
# 즉, n번째 영화의 제목 == n번째로 작은 종말의 숫자
# 출력해야하는 것은 n번째 영화 제목에 들어간 종말의 숫자

n = int(input())    # 입력값은 n으로 주어짐.(n은 n번째 영화 제목을 뜻함)

count = 0   # 제목에 666이 들어간게 나오면 횟수 추가하는 변수 지정(몇번째에 나왔는지 확인해야하니까)
name = 666  # 영화제목에서 666있는지 찾아야 하니까 변수 지정.(666부터 시작하는 이유는 5제일 작은 종말의 수이기 떄문)
while True:    # 666을 찾기위해 무한반복 할건데
    if '666' in str(name):  # 제목에 666이 있으면
        count += 1  # count(666나온 횟수 저장하는 변수)에 + 1
    if count == n:  # 그렇게 더한 count와 제일 처음 받은 입력값 n이 같으면 / 다르면
        print(name)     # 제목 출력하고 / 여긴 건너뛰고
        break   # while 반복문 탈출
    name += 1   #  / 여기로 와서 name에 1 증가시켜 다시 반복문 실행해서 count == n 될때까지 반복.


# Brute Force 무식하게 풀기
# 모든 경우의 수를 컴퓨터의 빠른 계산 능력을 이용해서 컴퓨터에게 계산 시키고, 그 중 원하는 답을 얻는 방법
# 모든 경우의 수를 다 찾아보니까 정답을 찾을 수 밖에 없지만 데이터의 양이 많아지면 비효율
# 자료구조 마다 부르트포스를 적용하는 방법이 다른데
# 선형구조는 순차탐색, 비선형 구조는 bfs(넓이 우선 탐색), dfs(깊이 우선 탐색)이 있음.
# 순차탐색의 예를 들자면 반 전체 학생을 운동장에 세워놓고 처음부터 끝까지 한명씩 키를 재서 180이 넘는 학생을 한쪽으로 열외하는 것.