#include <stdio.h>
#include <algorithm>
using namespace std;
int main() {
	unsigned long long n;
	unsigned long long dp[30][2] = {};
	unsigned long long sum[30] = {};
	dp[0][0] = 1; 
	for(int i = 1; i < 30; i++) {
		for(int j = 0; j < 2; j++) {
			dp[i][0] = 8 * dp[i-1][0] + 7 * dp[i-1][1];
			dp[i][1] = dp[i-1][0] + dp[i-1][1];
		}
	}
	for(int i = 1; i < 30; i++)
		sum[i] = sum[i-1] + (dp[i-1][0] + dp[i-1][1])* 7 + dp[i][1] - dp[i-1][1];
	while(scanf("%llu", &n) == 1) {
		int len = 0;
		for(len = 1; sum[len] <= n; len++);
		int prev = 0;
		n -= sum[len-1];
		for(int i = len; i >= 1; i--) {
			int last = -1;
			for(int j = (i == len); j <= 9; j++) {
				if(j == 4 || (prev == 1 && j == 3))	continue;
				if(j == 1) { 
					if(n > dp[i-1][0]) {
						n -= dp[i-1][0], last = j;
					} else {
						break;
					}
				} else {
					if(n > dp[i-1][0] + dp[i-1][1]) {
						n -= dp[i-1][0] + dp[i-1][1], last = j;
					} else
						break;
				}
			}
			last++;
			if(last == 4)	last++;
			if(i == len && last == 0)	last = 1;
			if(prev == 1 && last == 3)	last = 5;
			printf("%d", last), prev = last;
		}
		puts("");
	}
	return 0;
}