#include <bits/stdc++.h>
using namespace std;
int f[123456];
int a[123456];
int t[123456];
int query(int l, int r) {
  int res = f[r];
  if (l > 0) {
    res -= f[l - 1];
  }
  return res;
}
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
  }
  int s = 0;
  for (int i = 0; i < n; i++) {
    scanf("%d", t + i);
    f[i] = (t[i] ? 0 : a[i]);
    if (i > 0) {
      f[i] += f[i - 1];
    }
    if (t[i]) {
      s += a[i];
    }
  }
  int ans = 0;
  for (int i = 0; i < n; i++) {
    int r = min(n - 1, i + k - 1);
    ans = max(ans, query(i, r));
  }
  printf("%d\n", ans + s);
  return 0;
}
