#include<bits/stdc++.h>

using namespace std;

int read(){
	char ch = getchar();
	while(ch<'0' || ch >'9') ch = getchar();
	int num = ch - '0';
	while(ch = getchar(), ch >='0' && ch <= '9') num = (num << 3) + (num << 1) + ch - '0';
	return num;
}

const int MAXN = 205;
const int MAXM = 25;
int a[MAXN], b[MAXN],c[MAXN],vis[MAXN];
int f[2][MAXM][MAXM][MAXM][MAXM];

int main(){
	int n = read();
	int A = read();
	int B = read();
	for(int i = 1; i <= n; i++)
		a[i] = read();
	for(int j = 1; j <= n; j++)
		b[j] = read();
	int ans = 0;
	for(int i = 1; i <= n; i++)
		c[i] = a[i] + b[i];
	while(1){
		int k = 0;
		for(int i = 1; i <= n; i++)
			if (c[i]){
				k = i;
				break;
			}
		if (!k) break;
		c[k]--;
		ans++;
		int Nico = A - 1;
		memset(vis, 0 ,sizeof(vis));
		for(int i = k + 1; i < k + B; i++)
			if (Nico && c[i] == 2){
				c[i]--;
				Nico--;
				vis[i] = 1;
			}
		for(int i = k + 1; i < k + B; i++)
			if (Nico && c[i] && !vis[i]){
				c[i]--;
				Nico--;
			}
	}
	printf("%d\n", ans);
}
