#include using namespace std; int main(void){ // Your code here! int N; cin >> N; assert(1 <= N && N <= 100000); int K; cin >> K; assert(1 <= K && K <= N); vector X(N+2); vector A(N+2); X[0] = -1000000000000000000; X[N+1] = 1000000000000000000; for (int i = 1; i <= N; i++) { cin >> X[i]; assert(-100000000000000000 <= X[i] && X[i] <= 100000000000000000); if (2 <= i) { assert(X[i-1] < X[i]); } } for (int i = 1; i <= N; i++) { cin >> A[i]; assert(0 < A[i] && A[i] < 100000000000000000); } long long l = X[K] - A[K]; long long r = X[K] + A[K]; long long rFrog = K+1; long long lFrog = K-1; int flag = 1; while (flag) { flag = 0; if (X[rFrog] <= r) { r = max(X[rFrog] + A[rFrog], r); l = min(X[rFrog] - A[rFrog], l); rFrog += 1; flag = 1; } if (l <= X[lFrog]) { r = max(X[lFrog] + A[lFrog], r); l = min(X[lFrog] - A[lFrog], l); lFrog -= 1; flag = 1; } } cout << rFrog - lFrog - 1 << endl; return 0; }