#include<cstdio>
#include<list>
using namespace std;
list<int> A,B;
int i,nx,ny,sum;
void read(),solve(),show(),divide(int);
int main()
{
	read();
	solve();
	show();
	return 0;
}
void read()
{
	int x;
	freopen("numar3.in","r",stdin);
	freopen("numar3.out","w",stdout);
	scanf("%d%d",&nx,&ny);
	for(i=1;i<=nx;i++) { scanf("%d",&x); sum+=x; A.push_back(x);}
	for(i=1;i<=ny;i++) { scanf("%d",&x); sum+=x; A.push_back(x);}
}
void solve()
{
	if(!sum) return;
	B.push_back(1); for(i=1;i<=ny;i++) B.push_back(0);
	while(!A.back()&&!B.back()) A.pop_back(),B.pop_back();
	while(!A.front()) A.pop_front();
	
	while(A.back()%2==0&&B.back()%2==0) 
		divide(2);
	while(A.back()%5==0&&B.back()%5==0) 
		divide(5);
}

void divide(int v)
{
	list<int>::iterator it;
	int r=0;
	for(it=A.begin();it!=A.end();it++) { *it+=r; r=(*it%v)*10; *it/=v; } while(!A.front()) A.pop_front();
	for(it=B.begin();it!=B.end();it++) { *it+=r; r=(*it%v)*10; *it/=v; } while(!B.front()) B.pop_front();
}

void show()
{
	list<int>::iterator it;
	if(!sum) { printf("1\n0\n1\n0"); return; }
	printf("%d\n",A.size()); for(it=A.begin();it!=A.end();it++) printf("%d",*it); printf("\n");
	printf("%d\n",B.size()); for(it=B.begin();it!=B.end();it++) printf("%d",*it); printf("\n");
}

