#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct inf {
int t;
int w;
} inf;
int cmp(const void *a, const void *b) {
return (*(inf*)b). w - (*(inf*)a).w;
}
int main() {
long long int m;
int n, i, j, win[502] = {1};
inf a[502];
scanf("%lld", &m);
scanf("%d", &n);
for (i = 1; i <= n; i++) {
scanf("%d", &a[i].t);
}
for (i = 1; i <= n; i++) {
scanf("%d", &a[i].w);
}
qsort(a, n + 1, sizeof(a[0]), cmp);
for (i = 1; i <= n; i++) {
if (win[a[i].t] == 0) {
win[a[i].t] = 1;
a[i].w = 0;
} else {
for (j = 1; j <= a[i].t - 1; j++) {
if (win[a[i].t - j] == 0) {
win[a[i].t - j] = 1;
a[i].w = 0;
break;
} else {
continue;
}
}
}
m = m - a[i].w;
}
printf("%lld\n", m);
return 0;
}