intmain() { std::cin >> n >> m; for (int i = 1; i <= n; ++ i) scanf("%lld", a + i); for (int i = 1; i <= m; ++ i) scanf("%lld", b + i); for (int i = 1; i <= m; ++ i) scanf("%lld", c + i); std::sort(a + 1, a + n + 1); for (int i = 1; i <= m; ++ i) { k[1] += b[i]; if ((t = (c[i] + b[i] - 1) / b[i]) <= n) k[t] -= b[i], st[t] += c[i]; } for (int i = 1; i <= n; ++ i) k[i] += k[i - 1], st[i] += st[i - 1]; auto get = [&](int s) { return k[s] * s + st[s]; }; LL res = 5e18, sum = 0; for (int i = 0; i <= n; ++ i) res = std::min(res, get(n - i) + (sum += a[i])); std::cout << res << '\n'; return0; }