function f(...)
r={}for i,t in ipairs(...)do for _,v in ipairs(t)do if r[v] then r[v][#r[v]+1]=i else r[v]={i}end end end return r
end
function dump(array)
for i,t in ipairs(array) do
array[i] = '{' .. table.concat(array[i],',') .. '}'
end
return '{' .. table.concat(array,',') .. '}'
end
print(dump(f({{4,3,6,1},{2,4},{3,2,1,5},{5,6,4},{7,7}})))
print(dump(f({{4,6,7,3},{1,1,1},{2,1,4,5}})))
print(dump(f({{1},{1},{},{1}})))
ZnVuY3Rpb24gZiguLi4pCgpyPXt9Zm9yIGksdCBpbiBpcGFpcnMoLi4uKWRvIGZvciBfLHYgaW4gaXBhaXJzKHQpZG8gaWYgclt2XSB0aGVuIHJbdl1bI3Jbdl0rMV09aSBlbHNlIHJbdl09e2l9ZW5kIGVuZCBlbmQgcmV0dXJuIHIKCmVuZAoKZnVuY3Rpb24gZHVtcChhcnJheSkKCWZvciBpLHQgaW4gaXBhaXJzKGFycmF5KSBkbwoJCWFycmF5W2ldID0gJ3snIC4uIHRhYmxlLmNvbmNhdChhcnJheVtpXSwnLCcpIC4uICd9JwoJZW5kCglyZXR1cm4gJ3snIC4uIHRhYmxlLmNvbmNhdChhcnJheSwnLCcpIC4uICd9JwplbmQKCnByaW50KGR1bXAoZih7ezQsMyw2LDF9LHsyLDR9LHszLDIsMSw1fSx7NSw2LDR9LHs3LDd9fSkpKQpwcmludChkdW1wKGYoe3s0LDYsNywzfSx7MSwxLDF9LHsyLDEsNCw1fX0pKSkKcHJpbnQoZHVtcChmKHt7MX0sezF9LHt9LHsxfX0pKSk=
{{1,3},{2,3},{1,3},{1,2,4},{3,4},{1,4},{5,5}}
{{2,2,2,3},{3},{1},{1,3},{3},{1},{1}}
{{1,2,4}}