#include <stdio.h>
#define MaxSize 10
//创建栈
typedef struct {
int data[MaxSize];
int top;
} SqStack;
//初始化栈
//void Initstack(SqStack &s) {
// s.top = -1;
//}
//判断栈是否为空
bool stackEmpty(SqStack s) {
if (s.top == -1)
return true;
else
return false;
}
//增
bool Push(SqStack &s, int x) {
if (s.top == MaxSize - 1)
return false;
else
s.top = s.top + 1;
s.data[s.top] = x;
// s.data[++s.top] =x;
return true;
}
//删
bool Pop(SqStack &s, int &x) {
if (s.top == -1)
return false;
x = s.data[s.top];
s.top -= 1;
return true;
}
//返回栈顶元素
bool GetTope(SqStack &s, int &x) {
if (s.top == -1)
return false;
x = s.data[s.top];
return true;
}
int main(void) {
SqStack s;
s.top = -1;
int a, i, b, d, e;
scanf("%d", &a);
while (a) {
e = a % 8;
Push(s, e);
a = a / 8;
}
while (s.top != -1) {
Pop(s, d);
printf("%d", d);
}
return 0;
}