local mmi, mma, mab, mfl = math.min, math.max, math.abs, math.floor
local function solve()
  local n = io.read("*n")
  local iszero = false
  local cnt = {}
  for i = 1, 12 do cnt[i] = 0 end
  for i = 1, n do
    local d = io.read("*n")
    if d == 0 then iszero = true
    else
      cnt[d] = cnt[d] + 1
      if 3 <= cnt[d] then iszero = true end
    end
  end
  if iszero then return 0 end
  local fix, float = {}, {}
  local minval = 12
  for i = 12, 1, -1 do
    if 0 < cnt[i] then
      minval = i
    end
    if cnt[i] == 1 then
      table.insert(float, i)
    elseif cnt[i] == 2 then
      table.insert(fix, i)
    end
  end
  --fix_fix
  for i = 1, #fix - 1 do
    for j = i + 1, #fix do
      minval = mmi(minval, fix[i] - fix[j])
    end
  end
  for i = 1, #fix do
    minval = mmi(minval, fix[i] * 2)
    minval = mmi(minval, (12 - fix[i]) * 2)
  end
  --fix_float
  for i = 1, #fix do
    for j = 1, #float do
      minval = mmi(minval, mab(fix[i] - float[j]))
    end
  end
  --float_float
  if 0 < #float then
    local mul = 1
    local z = {}
    for i = 1, #float do mul = mul * 2 end
    local partmax = 0
    for i = 0, mul - 1 do
      local partmin = 12
      for j = 1, #float do
        if i % 2 == 0 then
          z[j] = float[j]
        else
          z[j] = -float[j]
        end
        i = mfl(i / 2)
      end
      for j = 1, #float - 1 do
        for k = j + 1, #float do
          local v = mab(z[j] - z[k])
          v = mmi(v, 24 - v)
          partmin = mmi(partmin, v)
        end
      end
      partmax = mma(partmax, partmin)
    end
    minval = mmi(minval, partmax)
  end
  return minval
end
print(solve())
