#include<iostream>
using namespace std;
int main()
{
unsigned long long k;
while (cin >> k) {
unsigned long long sum = 0, num = 1;
unsigned int len = 1;
//寻找K属于哪个区间范围内
for (;;++len) {
num = num * 2 ;
sum += num;
if (k <= sum) break;
}
sum -= num; // 2 + 4
k = k - sum - 1; // 处于第几个???// 7 - 6 - 1 = 0
//根据K所在的区间范围的偏移量二进制排列输出3,5
int res = 0;
//假设len=3
for (unsigned int i = len;i >= 1;--i) {
if ( ( (k >> (i-1)) & 1) == 0 ) //高位到低位
cout << "3";
else
cout << "5" ;
}
cout << endl;
}
return 0;
}