#include <bits/stdc++.h>
using namespace std;
const int N = 205, INF = 0x3f3f3f3f;
char a[N], b[N];
int n, m, f[N][N][N * 2];
int dp(int i, int j, int d) {
  if (d < 0 || d > 400) return INF;
  if (i == n && j == m && d == 0) return 0;
  if (f[i][j][d] != -1) return f[i][j][d];
  int minv = INF;
  if (i != n || j != m)
    minv = dp(i + (a[i] == '('), j + (b[j] == '('), d + 1) + 1;
  if (d > 0)
    minv = (minv > dp(i + (a[i] == ')'), j + (b[j] == ')'), d - 1) + 1
                ? dp(i + (a[i] == ')'), j + (b[j] == ')'), d - 1) + 1
                : minv);
  return f[i][j][d] = minv;
}
int main() {
  scanf("%s%s", a, b);
  memset(f, -1, sizeof(f));
  n = strlen(a);
  m = strlen(b);
  a[n] = '.';
  b[m] = '.';
  int minv = dp(0, 0, 0);
  int i = 0, j = 0, d = 0;
  while (minv--) {
    if (f[i + (a[i] == '(')][j + (b[j] == '(')][d + 1] == minv) {
      printf("(");
      i += (a[i] == '(');
      j += (b[j] == '(');
      d++;
    } else {
      printf(")");
      i += (a[i] == ')');
      j += (b[j] == ')');
      d--;
    }
  }
  return 0;
}
