#include <bits/stdc++.h>
using namespace std;
const int inf = 1e9;
string li, ne;
int dp[201][201][201];
int rp[201][201][201];
int f(int i, int j, int k) {
  if (k < 0 || k > 200) return inf;
  if (i == li.size() - 1 && j == ne.size() - 1) return k;
  if (dp[i][j][k] > -1) return dp[i][j][k];
  rp[i][j][k] = 1;
  int mx = f(i + (li[i] == '('), j + (ne[j] == '('), k + 1);
  if (mx > f(i + (li[i] == ')'), j + (ne[j] == ')'), k - 1)) {
    mx = f(i + (li[i] == ')'), j + (ne[j] == ')'), k - 1);
    rp[i][j][k] = 0;
  }
  return dp[i][j][k] = mx + 1;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> li >> ne;
  li += '$';
  ne += '$';
  memset(dp, -1, sizeof dp);
  int rx = f(0, 0, 0);
  int k = 0;
  for (int i = 0, j = 0; rx; --rx) {
    if (i == li.size() - 1 && j == ne.size() - 1) break;
    if (rp[i][j][k]) {
      k += 1;
      i += (li[i] == '(');
      j += (ne[j] == '(');
      cout << '(';
    } else {
      k -= 1;
      i += (li[i] == ')');
      j += (ne[j] == ')');
      cout << ')';
    }
  }
  while (k-- > 0) cout << ')';
  return 0;
}
