local function string_sort(str)
local t = {}
for c in str:gmatch "." do
table.insert(t, c)
end
table.sort(t)
return table.concat(t)
end
local function are_anagramic(w1, w2) return string_sort(w1) == string_sort(w2) end
local function remove_once(t, e)
local res = {}
local removed = false
for _, o in ipairs(t) do
if o ~= e or removed then table.insert(res, o) else removed = true end
end
return res
end
local function search(words, str)
if #words == 0 and str:len() == 0 then return {{}, {}}, true end
for _, w in ipairs(words) do
local ana = str:sub(1, w:len())
if are_anagramic(w, ana) then
local result, success = search(remove_once(words, w), str:sub(w:len() + 1))
if success then
table.insert(result[1], ana)
table.insert(result[2], w)
return result, true
end
end
end
return "huy tam", false
end
local function main()
local str1 = io.read()
local words = {}
for w in str1:gmatch "%w+" do
table.insert(words, w)
end
local str2 = io.read()
local result, success = search(words, str2)
if success then
print(table.concat(result[1], " "))
print(table.concat(result[2], " "))
else
print(result)
end
end
main()
bG9jYWwgZnVuY3Rpb24gc3RyaW5nX3NvcnQoc3RyKQogIGxvY2FsIHQgPSB7fQogIGZvciBjIGluIHN0cjpnbWF0Y2ggIi4iIGRvICAKICAgIHRhYmxlLmluc2VydCh0LCBjKQogIGVuZAogIHRhYmxlLnNvcnQodCkKICByZXR1cm4gdGFibGUuY29uY2F0KHQpCmVuZAoKbG9jYWwgZnVuY3Rpb24gYXJlX2FuYWdyYW1pYyh3MSwgdzIpIHJldHVybiBzdHJpbmdfc29ydCh3MSkgPT0gc3RyaW5nX3NvcnQodzIpIGVuZAoKbG9jYWwgZnVuY3Rpb24gcmVtb3ZlX29uY2UodCwgZSkKICBsb2NhbCByZXMgPSB7fQogIGxvY2FsIHJlbW92ZWQgPSBmYWxzZQogIGZvciBfLCBvIGluIGlwYWlycyh0KSBkbwogICAgaWYgbyB+PSBlIG9yIHJlbW92ZWQgdGhlbiB0YWJsZS5pbnNlcnQocmVzLCBvKSBlbHNlIHJlbW92ZWQgPSB0cnVlIGVuZAogIGVuZAogIHJldHVybiByZXMKZW5kCgpsb2NhbCBmdW5jdGlvbiBzZWFyY2god29yZHMsIHN0cikKICBpZiAjd29yZHMgPT0gMCBhbmQgc3RyOmxlbigpID09IDAgdGhlbiByZXR1cm4ge3t9LCB7fX0sIHRydWUgZW5kCiAgZm9yIF8sIHcgaW4gaXBhaXJzKHdvcmRzKSBkbwogICAgbG9jYWwgYW5hID0gc3RyOnN1YigxLCB3OmxlbigpKQogICAgaWYgYXJlX2FuYWdyYW1pYyh3LCBhbmEpIHRoZW4KICAgICAgbG9jYWwgcmVzdWx0LCBzdWNjZXNzID0gc2VhcmNoKHJlbW92ZV9vbmNlKHdvcmRzLCB3KSwgc3RyOnN1Yih3OmxlbigpICsgMSkpCiAgICAgIGlmIHN1Y2Nlc3MgdGhlbiAKICAgICAgICB0YWJsZS5pbnNlcnQocmVzdWx0WzFdLCBhbmEpCiAgICAgICAgdGFibGUuaW5zZXJ0KHJlc3VsdFsyXSwgdykKICAgICAgICByZXR1cm4gcmVzdWx0LCB0cnVlCiAgICAgIGVuZAogICAgZW5kCiAgZW5kCiAgcmV0dXJuICJodXkgdGFtIiwgZmFsc2UKZW5kCgpsb2NhbCBmdW5jdGlvbiBtYWluKCkKICBsb2NhbCBzdHIxID0gaW8ucmVhZCgpCiAgbG9jYWwgd29yZHMgPSB7fQogIGZvciB3IGluIHN0cjE6Z21hdGNoICIldysiIGRvCiAgICB0YWJsZS5pbnNlcnQod29yZHMsIHcpCiAgZW5kCiAgbG9jYWwgc3RyMiA9IGlvLnJlYWQoKQogIGxvY2FsIHJlc3VsdCwgc3VjY2VzcyA9IHNlYXJjaCh3b3Jkcywgc3RyMikKICBpZiBzdWNjZXNzIHRoZW4KICAgICBwcmludCh0YWJsZS5jb25jYXQocmVzdWx0WzFdLCAiICIpKQogICAgIHByaW50KHRhYmxlLmNvbmNhdChyZXN1bHRbMl0sICIgIikpCiAgZWxzZQogICAgcHJpbnQocmVzdWx0KQogIGVuZAplbmQKCm1haW4oKQ==