#include <iostream>
#include <algorithm>
#define int long long
using namespace std;
const int N = 1e6 + 5;
int n, m, ans;
int a[N], b[N], sum[N];
inline bool check(int x) {
for (int i = 1; i <= n; ++i) {
int res = 0;
for (int j = 1; j <= m; ++j)
res += max(0ll, x - abs(b[j] - i));
if (res < a[i]) return 0;
}
return 1;
}
signed main() {
cin >> n >> m;
for (int i = 1; i <= n; ++i)
cin >> a[i];
for (int i = 1; i <= m; ++i)
cin >> b[i];
for (int i = 1; i <= m; ++i)
sum[i] = sum[i - 1] + b[i];
int l = 0, r = 1e10;
while (l <= r) {
int mid = l + r >> 1ll;
if (check(mid)) {
ans = mid;
r = mid - 1;
}
else
l = mid + 1;
}
cout << ans;
return 0;
}
求怎么优化QwQ