// #define _CRT_SECURE_NO_WARNINGS
// #define _USE_MATH_DEFINES
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <cstdlib>
#include <functional>
#include <locale>
#include <cctype>
#include <sstream>
using namespace std;

typedef long long LL;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef map<int, int> MAPII;
typedef multimap<int, char, greater<int> > MuMAPIC;
typedef vector<pair<int, int> > VPII;
typedef multimap<int, string, greater<int> > MuMIS;

#define MP make_pair
#define fastIO  cin.tie(0); ios::sync_with_stdio(false);
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
//for gcc (未test)
// #define FOREACH_IT(it,c) for(typeof(c)::iterator it=(c).begin(); it!=(c).end(); ++it)
//for Visual Studio
#define foreach_it(type,it,c) for(type::iterator it=c.begin(),c_end=c.end();it!=c_end;++it)
#define DUMP_VVI(b) FOR(i,0,b.size()){FOR(j,0,b[i].size())printf("%d ",b[i][j]);puts("");}
int INPUT_INT() { int d; cin >> d; return d; } // 入力をpush_back(d)やarray[d]に使う時に1行で書ける

// ------------------- include, typedef, define END. -------------------

const char table[8] = { '0', '1', '2', '3', '5', '7', '8', '9' };

void solve(int n){
	if (n >= 8)
		solve(n / 8);
	cout << table[n % 8];
}

int main(){
	fastIO;
	// 文字01235789を使う8進数として考える.
	// 参考リンク4つ
	// http://d.hatena.ne.jp/nanikaka/20111120/1321748152
	// http://refiute.hatenablog.com/entry/20110907/1315381210
	// http://program.pinemz.net/article/168162542.html
	// http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=180052

	// 1. 数値 (= n) を 8 で割った余りをその位の値とする.
	// 2. n を 8 で割り, その答えを n として 1 に戻る.
	// (8進数に変換しているだけ. 8→5とかでもいけるはず.)

	// これは下位桁から求めている.再帰にして上位桁から出力する.

	int n;
	while (cin >> n, n){
		solve(n);
		cout << endl;
	}
	return 0;
}