Python 3, 62 47 5757 54 51 bytes
Edit: - 5 bytes thanks to @Mr.Xcoder
Edit: +10 bytes to fix a bug
Edit: -3 bytes thanks to @betaveros
Edit: -3 bytes by using max instead of pop
lambda x,y:max({*"abc"}-{x[:1],y[:1]}).pop+max(x,y)+(x[1:]or y[1[1:])