#include<bits/stdc++.h>
using namespace std;
const int maxn=30010;
int k,m,id=2;
int p[maxn*2];
struct node{
int num;
int id;
}a[maxn*8];
int main(){
p[1]=a[1].num=a[1].id=1;
a[0].num=10;
scanf("%d%d",&k,&m);
printf("1");
for (int i=1;i<=k;i++){
p[i<<1]=p[i]<<1|1;
p[i<<1|1]=(p[i]<<2)+5;
}
sort(p+1,p+k*2+2);
for (int i=2,j=1;i<=k;i++,j=1){
printf("%d",p[i]);
while (j<p[i]) j*=10;
while (p[i]) a[id].id=id,j/=10,a[id++].num=p[i]/j,p[i]%=j;
}
printf("\n");
for (int i=1;i<=m;i++){
int oldid=0;
for (int j=1;j<id;j++){
if (a[j].num==10) continue;
if (a[oldid].num<a[j].num){
a[oldid].num=10;
break;
}
oldid=j;
}
a[oldid].num=10;
}
for (int i=1;i<id;i++){
if (a[i].num<10) printf("%d",a[i].num);
}
return 0;
}
手测一些数据,过了,样例也过了