Vasile joacă (din nou!) jocul său preferat cu împuşcături. Personajul său are la brâu N
arme, aşezate în N
huse speciale, numerotate de la 1
la N
. Arma din husa i
are puterea pb
i
(1≤i≤N
).
În camera armelor a găsit M
arme, aşezate pe perete, în M
locaţii, numerotate de la 1
la M
. Pentru fiecare armă j
(1≤j≤M
) este cunoscută puterea sa pc
j
.
Vasile poate înlocui arme pe care le are la brâu cu arme aflate pe perete în camera armelor. La o înlocuire el ia arma de pe perete din locaţia j
(1≤j≤M
) şi o pune la brâu în husa i
(1≤i≤N
), iar arma din husa i
o pune pe perete în locaţia j
.
Cerinţă
Scrieţi un program care să determine suma maximă a puterilor armelor pe care le va avea la brâu Vasile după efectuarea înlocuirilor.
Date de intrare
Fișierul de intrare arme.in
conține pe prima linie numerele naturale N M
, reprezentând numărul de arme pe care le are la brâu, respectiv numărul de arme aflate în camera armelor. Pe a doua linie se află N
numere naturale pb
1
pb
2
… pb
N
reprezentând în ordine puterile armelor pe care Vasile le are la brâu. Pe a treia linie se află M
numere naturale pc
1
pc
2
… pc
M
reprezentând în ordine puterile armelor aflate în camera armelor. Numerele scrise pe aceeaşi linie sunt separate prin spaţiu.
Date de ieșire
Fișierul de ieșire arme.out
va conține o singură linie pe care va fi scrisă suma maximă a puterilor armelor de la brâul lui Vasile, după efectuarea înlocuirilor.
Restricții și precizări
1 ≤ N, M ≤ 1000
- Puterile armelor sunt numere naturale
≤ 10.000
.
Exemplu:
arme.in
3 2 3 1 7 4 5
arme.out
16