B. Распределенный join
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Piegirl должна объединить две таблицы (операция join) распределенной базы данных, передавая минимально возможный объем трафика по сети.

Предположим, что имеются две таблицы A и B. Каждая из них состоит из нескольких строк, которые хранятся распределено. Кластер, в котором хранится таблица A, разделен на m частей, причем i-я часть кластера содержит ai строк таблицы A. Кластер, в котором хранится таблица B, разделен на n частей, причем i-я часть кластера содержит bi строк таблицы B.

С помощью одной сетевой команды, Piegirl может скопировать любую одну строку из любой части любого кластера в любую часть любого кластера. В итоге для любой строки из таблицы A и любой строки из таблицы B должна существовать часть какого-то кластера, в которой содержатся обе эти строки. За какое минимальное количество сетевых команд можно этого добиться?

Входные данные

Первая строка содержит два целых числа m и n (1 ≤ m, n ≤ 105). Вторая строка содержит m целых чисел, записанных через пробел, ai (1 ≤ ai ≤ 109). Третья строка содержит n целых чисел, записанных через пробел, bi (1 ≤ bi ≤ 109).

Выходные данные

Выведите целое число — минимальное количество операций.

Примеры
Входные данные
2 2
2 6
3 100
Выходные данные
11
Входные данные
2 3
10 10
1 1 1
Выходные данные
6
Примечание

В первом примере оптимальным решением является: скопировать все недостающие строки во вторую часть второго кластера. В итоге, понадобится 2 + 6 + 3 = 11 операций.

Во втором примере оптимальное решение: скопировать все строки таблицы B в первую и вторую части первого кластера. Итого понадобится 2·3 = 6 операций.