rt,ACsubtask#1,#4
#include<bits/stdc++.h>
using namespace std;
#define int long long
struct gj
{
char num[50000100];
int len;//1
}a,b;//a>b
bool f;
gj hf(gj k)
{
char temp=0;
for(int i=k.len;i>=1;--i)
{
temp*=10;
temp+=k.num[i];
k.num[i]=temp/2;
temp%=2;
}
if(k.num[k.len]==0)k.len--;
return k;
}
gj c2(gj k)
{
char temp=0;
for(int i=1;i<=k.len;++i)
{
k.num[i]*=2;
k.num[i]+=temp;
temp=0;
if(k.num[i]>10)temp=1,k.num[i]-=10;
}
if(temp)k.num[++k.len]=1;
return k;
}
int t[20],n,t1,t2,t3,t4;
signed main()
{
scanf("%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld",&t[0],&t[1],&t[2],&t[3],&t[4],&t[5],&t[6],&t[7],&t[8],&t[9]);
n=t[0]+t[1]+t[2]+t[3]+t[4]+t[5]+t[6]+t[7]+t[8]+t[9];
t3=a.len=max(n/2,(n+1)/2);t4=b.len=n-max(n/2,(n+1)/2);
if(t[9]>2)a.num[a.len]=b.num[b.len]=9,t[9]-=2;
else a.num[a.len]=9,b.num[b.len]=8,t[9]-=1,t[8]-=1,f=1;
n=9;t3--,t4--;
while(t[n]==0)n--;
while(n>=0)
{
t1=n;t[n]--;
while(n>=0&&t[n]==0)n--;
if(n<0){t2=1145141919810;break;}
t2=n;t[n]--;
while(n>=0&&t[n]==0)n--;
// cerr<<t3<<" "<<t4<<" "<<t1<<" "<<t2<<" "<<n<<endl;
if(f)
{
a.num[t3--]=t2;
b.num[t4--]=t1;
}
else
{
a.num[t3--]=t1;
b.num[t4--]=t2;
if(t1>t2)f=1;
}
}
if(t2==1145141919810)a.num[t3--]=t1;
if(a.num[1]==0)
{
a=hf(a);
b=c2(b);
}
else
{
a=c2(a);
b=hf(b);
}
for(int i=a.len;i>=1;--i)printf("%d",(signed)a.num[i]);
puts("");
for(int i=b.len;i>=1;--i)printf("%d",(signed)b.num[i]);
return 0;
}