#!ruby -nl

def parse(str)
  eval str.tr('(', '[').tr(')', ']').gsub('[,', '[nil,').gsub(',]', ',nil]')
end

def intersection(l, r)
  res = []
  res[0] = (l && l[0]) && (r && r[0]) ? intersection(l[0], r[0]) : nil
  res[1] = (l && l[1]) && (r && r[1]) ? intersection(l[1], r[1]) : nil
  res
end

def union(l, r)
  res = []
  res[0] = (l && l[0]) || (r && r[0]) ? union(l[0], r[0]) : nil
  res[1] = (l && l[1]) || (r && r[1]) ? union(l[1], r[1]) : nil
  res
end

def print(tree)
  p tree.inspect.tr(' ', '').tr('[', '(').tr(']', ')').gsub('nil', '')
end

t, l, r = $_.chomp.split
tl = parse l
tr = parse r

res = t == 'u' ? union(tl, tr) : intersection(tl, tr)
print(res)