#include <cstdio>
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <set>
#include <vector>
using namespace std;
int main()
{
int tm[12];
int n;
while(scanf("%d",&n)!=EOF)
{
int cop=n;
if (n==0) break;
int i;
for (i=1;n>0;i++)
{
tm[i]=n%10;
n=n/10;
}
int ok=i-1;
int sum=cop;
int cun=0;
for (i=1;i<=ok;i++)
{
int sb=0;
if (tm[i]<3)
sb=0;
else
if (tm[i]>=3&&tm[i]<8)
sb=1;
else
if (tm[i]>=8)
sb=2;
sum=sum/10;
int cs;
if (i==1) cs=1;
if (i==2) cs=8;
if (i==3) cs=64;
if (i==4) cs=512;
if (i==5) cs=4096;
if (i==6) cs=32768;
if (i==7) cs=262144;
if (i==8) cs=2097152;
if (i==9) cs=16777216;
cun+=(sum*2+sb)*cs;
//注意cs的计算方法 i=1,cs1=
//i=4 cs= 1000-2*100-8*20-*8*8*2
//i=5 cs= 10000-2*1000-8*8*20-8*8*8*2 以此类推
}
printf("%d: %d\n",cop,cop-cun);
}
return 0;
}
#include <cmath>
#include <cstring>
#include <string>
#include <algorithm>
#include <iostream>
#include <queue>
#include <map>
#include <set>
#include <vector>
using namespace std;
int main()
{
int tm[12];
int n;
while(scanf("%d",&n)!=EOF)
{
int cop=n;
if (n==0) break;
int i;
for (i=1;n>0;i++)
{
tm[i]=n%10;
n=n/10;
}
int ok=i-1;
int sum=cop;
int cun=0;
for (i=1;i<=ok;i++)
{
int sb=0;
if (tm[i]<3)
sb=0;
else
if (tm[i]>=3&&tm[i]<8)
sb=1;
else
if (tm[i]>=8)
sb=2;
sum=sum/10;
int cs;
if (i==1) cs=1;
if (i==2) cs=8;
if (i==3) cs=64;
if (i==4) cs=512;
if (i==5) cs=4096;
if (i==6) cs=32768;
if (i==7) cs=262144;
if (i==8) cs=2097152;
if (i==9) cs=16777216;
cun+=(sum*2+sb)*cs;
//注意cs的计算方法 i=1,cs1=
//i=4 cs= 1000-2*100-8*20-*8*8*2
//i=5 cs= 10000-2*1000-8*8*20-8*8*8*2 以此类推
}
printf("%d: %d\n",cop,cop-cun);
}
return 0;
}