#define _USE_MATH_DEFINES #include using namespace std; bool vis[101010]; long long x[101010], a[101010]; int n, k; void dfs(int cur) { if (vis[cur]) return; vis[cur] = true; long long lo = x[cur] - a[cur]; long long hi = x[cur] + a[cur]; int l = upper_bound(x, x + n, lo) - x; int r = (upper_bound(x, x + n, hi) - x); for (int i = l; i <= r; i++) { if (i < n && x[i] >= lo && x[i] <= hi) dfs(i); } } signed main() { ios::sync_with_stdio(false); cin.tie(0); cin >> n >> k; k--; for (int i = 0; i < n; i++) { cin >> x[i]; } for (int i = 0; i < n; i++) { cin >> a[i]; } dfs(k); int ans = 0; for (int i = 0; i < n; i++) { ans += vis[i]; } cout << ans << endl; return 0; }