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}})))