```go
package main
import (
"bufio"
"fmt"
"os"
"sort"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var n, d int
fmt.Fscan(in, &n, &d)
s := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &s[i])
}
p := make([]int, n)
for i := 0; i < n; i++ {
fmt.Fscan(in, &p[i])
}
target := s[d-1] + p[0]
reqs := make([]int, 0)
for i := 0; i < n; i++ {
if i == d-1 {
continue
}
if s[i] > target {
reqs = append(reqs, -1)
} else {
reqs = append(reqs, target-s[i]+1)
}
}
sort.Ints(reqs)
fixed := 0
for fixed < len(reqs) && reqs[fixed] == -1 {
fixed++
}
reqs = reqs[fixed:]
prizes := p[1:]
sort.Ints(prizes)
saved := 0
j := 0
for i := 0; i < len(prizes) && j < len(reqs); i++ {
for j < len(reqs) && reqs[j] <= prizes[i] {
j++
}
if j < len(reqs) {
saved++
j++
}
}
fmt.Fprintln(out, n-fixed-saved)
}
```