using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FreeWorks { class Program { static void Main(string[] args) { string[] line = Console.ReadLine().Split(' '); int n = int.Parse(line[0]); int k = int.Parse(line[1]); long[] X = Console.ReadLine().Split(' ').Select(x => long.Parse(x)).ToArray(); long[] A = Console.ReadLine().Split(' ').Select(x => long.Parse(x)).ToArray(); bool[] check = new bool[n]; Queue q = new Queue(); q.Enqueue(k - 1); int cnt = 0; int max_i = k - 1; int min_i = k - 1; while (q.Count > 0) { int i = q.Dequeue(); if (check[i]) continue; check[i] = true; cnt++; long rightRange = X[i] + A[i]; long leftRange = X[i] - A[i]; for (int x = max_i + 1; x < n && X[x] <= rightRange; x++) { q.Enqueue(x); max_i = Math.Max(max_i, x); } for (int x = min_i - 1; x >= 0 && leftRange <= X[x]; x--) { q.Enqueue(x); min_i = Math.Min(min_i, x); } } Console.WriteLine(cnt); } } }