#include const int MAXN = 112345; long long X[MAXN]; long long A[MAXN]; int main() { int N, K; std::cin >> N >> K; --K; for (int i = 0; i < N; ++i) { std::cin >> X[i]; } for (int i = 0; i < N; ++i) { std::cin >> A[i]; } int li = K; int ri = K; long long lv = X[K] - A[K]; long long rv = X[K] + A[K]; bool upd = true; while (upd) { upd = false; if (0 < li && lv <= X[li - 1]) { --li; lv = std::min(lv, X[li] - A[li]); rv = std::max(rv, X[li] + A[li]); upd = true; } if (ri < N - 1 && X[ri + 1] <= rv) { ++ri; lv = std::max(lv, X[ri] - A[ri]); rv = std::max(rv, X[ri] + A[ri]); upd = true; } } std::cout << ri - li + 1 << std::endl; }