/** @file 871.cpp @title No.871 かえるのうた - yukicoder @url https://yukicoder.me/problems/no/871 **/ #include using namespace std; typedef long long LL; #define ALL(obj) (obj).begin(), (obj).end() #define RALL(x) (x).rbegin(), (x).rend() #define SZ(x) ((int)(x).size()) #define REPI(i, a, b) for (LL i = LL(a); i < LL(b); ++i) #define REP(i, N) for (LL i = LL(0); i < LL(N); ++i) #define REPS(i, N) for (int i = 1; i <= (int)(N); i++) #define RREP(i, N) for (int i = ((int)(N)-1); i >= 0; i--) #define RREPS(i, N) for (int i = ((int)(N)); i > 0; i--) #define chmax(ret, x) ret = max(ret, x) #define chmin(ret, x) ret = min(ret, x) #define FILL(x, e) memset(x, e, sizeof(x)) #define ZEROS(x) fill(x, 0) #define UNIQ(x) v.erase(unique(ALL(x)), x.end()); #define BIT(n) (1LL << (n)) #define OUT(x) cout << (x) << "\n" #define DEBUG(x) cerr << #x << " : " << x << "\n" #define DEBUG2(x, y) cerr << "(" << #x << ", " << #y << ") = (" << x << ", " << y << ")\n"; #define PB push_back #define EB emplace_back #define MP make_pair #define MT make_tuple #define FI first #define SE second const int MOD = 1e9 + 7; void iostream_init() { ios::sync_with_stdio(false); cin.tie(0); cout.setf(ios::fixed); cout.precision(12); } int main() { ::iostream_init(); LL N, K; cin >> N >> K; vector X(N, 0); vector A(N, 0); REP(i, N) { cin >> X[i]; } REP(i, N) { cin >> A[i]; } LL Xmin = X[K - 1] - A[K - 1]; LL Xmax = X[K - 1] + A[K - 1]; LL ans = 1; LL i = K - 1; LL j = K - 1; while (true) { if (i + 1 < N && X[i + 1] <= Xmax) { i++; Xmin = min(Xmin, X[i] - A[i]); Xmax = max(Xmax, X[i] + A[i]); ans++; continue; } if (0 <= j - 1 && Xmin <= X[j - 1]) { j--; Xmin = min(Xmin, X[j] - A[j]); Xmax = max(Xmax, X[j] + A[j]); ans++; continue; } break; } cout << ans << endl; return 0; }