import java.math.BigInteger;
import java.util.ArrayList;
public class Main{
static final long MAX=10000001;
public static void main(String[] args) {
//求3的10000001次方
BigInteger nine=new BigInteger("9");
int i=1;//当前次幂数
int sum=2;//当前次幂值
long mi=MAX;//当前剩余值
ArrayList<Integer> al=new ArrayList<Integer>();//拆分的次幂数
while(true) {
if(sum>mi)
break;
sum*=2;
i++;
}//求最大的次幂数(循环初始值)
while(true) {
if(mi==0)
break;//剩余值为零时
if(sum>mi) {//如果当前次幂值超了剩余值,次幂值减一次幂
sum/=2;
i--;
continue;
}
mi-=sum;
al.add(i);
}
System.out.println(al);
BigInteger an=new BigInteger("1");
BigInteger answ=new BigInteger("1");
int j=1;
if(al.get(al.size()-1)==0) {
an=an.multiply(new BigInteger("3"));
al.remove(al.size()-1);
}
for(i=al.size()-1;i>=0;i--) {
for(;j<=al.get(i);j++) {
answ=answ.multiply(nine);
}
an=an.multiply(answ);
}
System.out.println(an);
}
}