#include <stdio.h>
#include <ctype.h>
#include <vector>
#include <algorithm>
#include <math.h>

using namespace std;

/*
bool used[1002];
int dist[1002];
int n, m, count2;
double d1, d2;
int x[1002], y[1002];

double D(int a, int b)
{
	return sqrt( (double)(x[a] - x[b]) * (x[a] - x[b]) + (y[a] - y[b]) * (y[a] - y[b]) );
}*/

int count2 = 0;

void print(int a)
{
	if( a == 0 )
	{
		printf("{}");
	}
	if( a == 1 )
	{
		printf("{{}}");
	}
	if( a > 1 )
	{
		printf("{");
		for(int i = 0; i < a; i++)
		{
			print(i);
			if( i != a - 1 )
			{
				printf(",");
			}
		}
		printf("}");
	}
}

char C[100500];

int main()
{
	freopen("input.txt", "rt", stdin);
	freopen("output.txt", "wt", stdout);

	int a = 0, b = 0;
	gets(C);
	for(int i = 1; C[i] != 0; i++)
	{
		if( C[i] == '{' )
		{
			count2++;
		}
		if( C[i] == '}' )
		{
			count2--;
		}
		if( count2 == 0 && C[i] != ','  )
		{
			a++;
		}
	}
	count2 = 0;
	gets(C);
	for(int i = 1; C[i] != 0; i++)
	{
		if( C[i] == '{' )
		{
			count2++;
		}
		if( C[i] == '}' )
		{
			count2--;
		}
		if( count2 == 0 && C[i] != ',' )
		{
			b++;
		}
	}
	print(a + b);

	/*scanf("%d%d%d%lf%lf", &count2, &n, &m, &d1, &d2);

	for(int i = 1; i <= count2; i++)
	{
		scanf("%d%d", &x[i], &y[i]);
	}

	for(int i = 1; i <= count2; i++)
	{
		if( i != n )
		{
			dist[i] = 100500;
		}
	}

	while(1)
	{
		int index;
		bool found = false;
		int min;
		for(int i = 1; i <= count2; i++)
		{
			if( !used[i] && (!found || min > dist[i] ) )
			{
				found = true;
				min = dist[i];
				index = i;
			}
		}

		if( !found )
		{
			break;
		}

		used[index] = true;

		for(int i = 1; i <= count2; i++)
		{
			if( D(i, index) <= d1 + d2 + 1E-9 && !used[i] && dist[index] + 1 < dist[i] )
			{
				dist[i] = dist[index] + 1;
			}
		}
	}
	if( dist[m] == 100500 )
	{
		printf("Impossible\n");
	}
	else
	{
		printf("%d\n", dist[m]);
	}*/
	return 0;
}