local function round(x)
    return math.floor(x + 0.5)
end

local pkg2sum = {}
local pkg2n = {}

for line in io.stdin:lines() do
    if line:match("%[done%]") then
        local _, pkg, _, _, time = assert(line:match("(%[done%]) +([^ ]+) +([^ ]+) +([^ ]+) KiB +([^ ]+)"))
        local minutes, seconds = assert(time:match("(%d+)m([%d%.]+)"))
        local total_seconds = minutes * 60 + seconds
        pkg2sum[pkg] = (pkg2sum[pkg] or 0) + total_seconds
        pkg2n[pkg] = (pkg2n[pkg] or 0) + 1
    end
end

local pkg2avg = {}
for pkg, sum in pairs(pkg2sum) do
    local n = assert(pkg2n[pkg])
    local avg = sum / n
    pkg2avg[pkg] = avg
    --print(avg)
end

local sum = 0
local n = 0
for pkg, time in pairs(pkg2avg) do
    sum = sum + time
    n = n + 1
end

local AVG1 = sum / n
print("Average: " .. AVG1)

local MIN_FACTOR = 3.0

local sum2 = 0
local n2 = 0
for pkg, time in pairs(pkg2avg) do
    local factor = time / AVG1
    if factor < MIN_FACTOR then
        sum2 = sum2 + time
        n2 = n2 + 1
    end
end

local AVG2 = sum2 / n2
local max_factor = 0

local factor2pkgs = {}
for pkg, time in pairs(pkg2avg) do
    local factor = time / AVG1
    if factor >= MIN_FACTOR then
        local factor2 = round(time / AVG2)
        factor2pkgs[factor2] = factor2pkgs[factor2] or {}
        table.insert(factor2pkgs[factor2], '"' .. pkg .. '"')
        max_factor = math.max(max_factor, factor2)
    end
end

local MIN_GROUP = 3

-- group
local group = {}
local sum = 0
local factor2pkgs2 = {}
for factor = 0, max_factor do
    local pkgs = factor2pkgs[factor]
    if pkgs then
        for _, pkg in ipairs(pkgs) do
            table.insert(group, pkg)
            sum = sum + factor
        end
        if #group >= MIN_GROUP or factor == max_factor then
            local factor3 = round(sum / #group)
            assert(not factor2pkgs2[factor3])
            factor2pkgs2[factor3] = group
            sum = 0
            group = {}
        end
    end
end

print("local HUGE_TIMES = {")
for factor = 0, max_factor do
    local pkgs = factor2pkgs2[factor]
    if pkgs then
        print(("[%d] = {%s},"):format(factor, table.concat(pkgs, ', ')))
    end
end
print("}")