def m(A,B):return b(A,B),b(B,A)
def b(A,B,C=''):
while len(A)>0:p=[j for j in range(len(A),0,-1)if A[:j]in B];j=p[0]if len(p)>0 else 1;C+=A[:j][::-1];A=A[j:];
return C
l=[("abc bab", "abdabc"),
("abcde", "abcd bcde"),
("hello test", "test banana"),
("birds flying high", "whistling high nerds")]
for e in l:
print m(*e)
ZGVmIG0oQSxCKTpyZXR1cm4gYihBLEIpLGIoQixBKQpkZWYgYihBLEIsQz0nJyk6CiB3aGlsZSBsZW4oQSk+MDpwPVtqIGZvciBqIGluIHJhbmdlKGxlbihBKSwwLC0xKWlmIEFbOmpdaW4gQl07aj1wWzBdaWYgbGVuKHApPjAgZWxzZSAxO0MrPUFbOmpdWzo6LTFdO0E9QVtqOl07CiByZXR1cm4gQwoKbD1bKCJhYmMgYmFiIiwgImFiZGFiYyIpLAooImFiY2RlIiwgImFiY2QgYmNkZSIpLAooImhlbGxvIHRlc3QiLCAidGVzdCBiYW5hbmEiKSwKKCJiaXJkcyBmbHlpbmcgaGlnaCIsICJ3aGlzdGxpbmcgaGlnaCBuZXJkcyIpXQpmb3IgZSBpbiBsOgogICAgcHJpbnQgbSgqZSkK