local t = io.read("*all") local count = {} for w in string.gmatch(t, "%w+") do count[w] = (count[w] or 0) + 1 end local words = {} for w in pairs(count) do words[#words + 1] = w end table.sort(words, function (a,b) return count[a] > count[b] end) for i=1, (arg[1] or 10) do print(words[i], count[words[i]]) end