#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 int main(){ int N,M; cin>>N>>M; vector a(N),b(M); rep(i,N)cin>>a[i]; rep(i,M)cin>>b[i]; rep(i,b.size()){ if(b.size()==N-1)break; b.push_back(b[i]); } vector c(N); rep(i,N)cin>>c[i]; b.insert(b.begin(),0LL); rep(i,b.size()-1){ b[i+1] += b[i]; } map mp; long long sum = 0; rep(i,N){ mp[b[i]-a[i]] += c[i]; sum += c[i]; } long long ans = sum; for(auto x:mp)ans = min(ans,sum - x.second); cout<