// ※※※ 解答不能 ※※※.
// 以下のソースを勉強する.
// onakaT_Titai氏.
// https://yukicoder.me/submissions/351154
#include <bits/stdc++.h>
using namespace std;
int main(void){
    int N;
    scanf("%d", &N);
    int K;
    scanf("%d", &K);
    
    vector<long long> X(N + 2);
    vector<long long> 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;
}