/*
* Problem :: 1436 / 영화감독 숌
*
* Kind :: Brute Force
*
* Insight
* - N 번째 영화 제목 숫자를 한 번에 출력해주는 알고리즘을 만들고 싶었는데...
* 66600, 366600 과 같은 경우를 다루기가 어려웠다
* + 그래서 그냥 다 해보기로 했다
* # max(N) 인 10000 을 넣어보고 결과를 확인해보면서
* 시간 제한을 넘는지 그렇지 않은지 알아보자
* -> N = 10000 일 때, 제목의 숫자가 2666799 이므로 충분히 가능하다
*/
//
// BOJ
// ver.C++
//
// Created by GGlifer
//
// Open Source
#include <iostream>
using namespace std;
#define endl '\n'
// Set up : Global Variables
/* None */
// Set up : Functions Declaration
bool is666(int n);
int main()
{
// Set up : I/O
ios::sync_with_stdio(false);
cin.tie(nullptr);
// Set up : Input
int N; cin >> N;
// Process
int n = 0; /* 현재 탐색하고 있는 수 */
int cnt = 0; /* 현재까지 탐색한 수들 중 만난 종말의 숫자 개수 */
while (cnt < N) {
n++;
if (is666(n)) cnt++;
}
// Control : Output
cout << n << endl;
}
// Helper Functions
bool is666(int n)
/* 이 숫자가 종말의 숫자면 true 를 반환, 그 외 false 를 반환 */
{
int cnt = 0; /* 연속으로 나오는 숫자 6 카운트 */
while (n) {
if (n % 10 == 6) { /* 현재 일의 자리 숫자가 6이면 */
cnt++; /* 카운트를 하나 늘림 */
if (cnt == 3) { /* 연속으로 6이 세번 나왔으면 */
return true; /* 이 숫자는 종말의 숫자임 */
}
} else {
cnt = 0; /* 연속이 끊김, 카운트를 0으로 초기화 */
} n /= 10; /* 10으로 나눈 몫으로 숫자 갱신
* 즉 위 알고리즘은, 숫자의 맨 뒷자리부터
* 6이 3번 연속으로 나오는지를 검사하는 것임 */
} return false;
}