// ※※※ 解答不能 ※※※. // 以下のソースを勉強する. // onakaT_Titai氏. // https://yukicoder.me/submissions/351154 #include using namespace std; int main(void){ int N; scanf("%d", &N); int K; scanf("%d", &K); vector X(N + 2); vector A(N + 2); X[0] = -1000000000000000000; X[N + 1] = 1000000000000000000; for(int i = 1; i <= N; i++) scanf("%lld", &X[i]); for(int i = 1; i <= N; i++) scanf("%lld", &A[i]); 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; } } printf("%lld", rFrog - lFrog - 1); return 0; }