main :: IO ()
main = do
  _ <- getLine
  vs <- map read . words <$> getLine
  print $ solve vs

solve :: [Int] -> Int
solve vs = solve' (count as) (count bs)
  where
    (as, bs) = deal vs

deal :: [Int] -> ([Int], [Int])
deal [] = ([], [])
deal (x:y:zs) = (x:xs, y:ys)
  where
    (xs, ys) = deal zs

solve' :: [(Int, Int)] -> [(Int, Int)] -> Int
solve' [a0] [b0]
  | ka0 == kb0 = va0 `min` vb0
  | ka0 /= kb0 = 0
  where
    (ka0, va0) = a0
    (kb0, vb0) = b0
solve' [a0] (b0:b1:bs)
  | ka0 == kb0 = vb0 + bsum
  | ka0 /= kb0 = vb1 + bsum
  where
    (ka0, va0) = a0
    (kb0, vb0) = b0
    (kb1, vb1) = b1
    bsum = sum (map snd bs)
solve' (a0:a1:as) [b0]
  | ka0 == kb0 = va0 + asum
  | ka0 /= kb0 = va1 + asum
  where
    (ka0, va0) = a0
    (kb0, vb0) = b0
    (ka1, va1) = a1
    asum = sum (map snd as)
solve' (a0:a1:as) (b0:b1:bs)
  | ka0 /= kb0             = va1 + asum + vb1 + bsum
  | va0 + vb1 >= va1 + vb0 = va1 + asum + vb0 + bsum
  | va0 + vb1 <  va1 + vb0 = va1 + asum + vb1 + bsum
  where
    (ka0, va0) = a0
    (kb0, vb0) = b0
    (ka1, va1) = a1
    (kb1, vb1) = b1
    asum = sum (map snd as)
    bsum = sum (map snd bs)

count :: [Int] -> [(Int, Int)]
count = reverse . sortOn snd . map (\xs -> (head xs, length xs)) . group . sort
                                                                                       56,1         末尾
