description: Moamen has an array of n distinct integers. He wants to sort that array in non-decreasing order by doing the following operations in order exactly once:
  
    1. Split the array into exactly k non-empty subarrays such that each element belongs to exactly one subarray. 
    2. Reorder these subarrays arbitrary. 
    3. Merge the subarrays in their new order. 
  
  
  
  A sequence a is a subarray of a sequence b if a can be obtained from b by deletion of several (possibly, zero or all) elements from the beginning and several (possibly, zero or all) elements from the end.
  
  Can you tell Moamen if there is a way to sort the array in non-decreasing order using the operations written above?
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^3) — the number of test cases. The description of the test cases follows.
  
  The first line of each test case contains two integers n and k (1 ≤ k ≤ n ≤ 10^5).
  
  The second line contains n integers a_1, a_2, …, a_n (0 ≤ |a_i| ≤ 10^9). It is guaranteed that all numbers are distinct.
  
  It is guaranteed that the sum of n over all test cases does not exceed 3⋅10^5.
  
  Output
  
  For each test case, you should output a single string.
  
  If Moamen can sort the array in non-decreasing order, output "YES" (without quotes). Otherwise, output "NO" (without quotes).
  
  You can print each letter of "YES" and "NO" in any case (upper or lower).
  
  Example
  
  Input
  
  
  3
  5 4
  6 3 4 2 1
  4 2
  1 -4 0 -2
  5 1
  1 2 3 4 5
  
  
  Output
  
  
  Yes
  No
  Yes
  
  Note
  
  In the first test case, a = [6, 3, 4, 2, 1], and k = 4, so we can do the operations as follows: 
  
    1. Split a into \{ [6], [3, 4], [2], [1] \}. 
    2. Reorder them: \{ [1], [2], [3,4], [6] \}. 
    3. Merge them: [1, 2, 3, 4, 6], so now the array is sorted. 
  
  
  
  In the second test case, there is no way to sort the array by splitting it into only 2 subarrays.
  
  As an example, if we split it into \{ [1, -4], [0, -2] \}, we can reorder them into \{ [1, -4], [0, -2] \} or \{ [0, -2], [1, -4] \}. However, after merging the subarrays, it is impossible to get a sorted array.
solution: #Mamma don't raises quitter.................................................
  from collections import deque as de
  import math
  from math import sqrt as sq
  from math import floor as fl
  from math import ceil as ce
  from sys import stdin, stdout
  import re
  from collections import Counter as cnt
  from functools import  reduce
  
  from itertools import groupby as gb
  #from fractions import Fraction as fr
  from bisect import bisect_left as bl, bisect_right as br
  
  def factors(n):    
      return set(reduce(list.__add__, 
                  ([i, n//i] for i in range(1, int(n**0.5) + 1) if n % i == 0)))
      
  class My_stack():
      def __init__(self):
          self.data = []
      def my_push(self, x):
          return (self.data.append(x))
      def my_pop(self):
          return (self.data.pop())
      
      def my_peak(self):
          return (self.data[-1])
      def my_contains(self, x):
          return (self.data.count(x))
      def my_show_all(self):
          return (self.data)
      def isEmpty(self):
        return len(self.data)==0
  
  arrStack = My_stack() 
  
  class graph():
      def __init__(self):
          self.graphdict = {}
   
      def add_edge(self, node, neighbor):
          if node not in self.graphdict:
              self.graphdict[node]=[neighbor]
          else:
              self.graphdict[node].append(neighbor)
      
      def show_edge(self):
          for node in self.graphdict:
              for neighbors in self.graphdict:
                  print(node, neighbors)
      def show_graph(self):
          return self.graphdict
      
  
  
      
              
  
  #decimal to binary   
  def decimalToBinary(n): 
      return bin(n).replace("0b", "")
  #binary to decimal
  def binarytodecimal(n):
      return int(n,2)
  
  def isPrime(n) : 
  	if (n <= 1) : 
  		return False
  	if (n <= 3) : 
  		return True
  
  	
  	if (n % 2 == 0 or n % 3 == 0) : 
  		return False
  
  	i = 5
  	while(i * i <= n) : 
  		if (n % i == 0 or n % (i + 2) == 0) : 
  			return False
  		i = i + 6
  
  	return True
  
  def get_prime_factors(number):
      prime_factors = []
      while number % 2 == 0:
          prime_factors.append(2)
          number = number / 2
      for i in range(3, int(math.sqrt(number)) + 1, 2):
          while number % i == 0:
              prime_factors.append(int(i))
              number = number / i
  
      if number > 2:
          prime_factors.append(int(number))
      return prime_factors
  
  def get_frequency(list):
      dic={}
      for ele in list:
          if ele in dic:
              dic[ele] += 1
          else:
              dic[ele] = 1
      return dic
  def Log2(x): 
      return (math.log10(x) / 
              math.log10(2)); 
  
   
  # Function to get product of digits
  def getProduct(n):
   
      product = 1
   
      while (n != 0):
          product = product * (n % 10)
          n = n // 10
   
      return product
  
  
  #function to find LCM of two numbers
  def lcm(x,y):
     lcm = (x*y)//math.gcd(x,y)
     return lcm
  
  def isPowerOfTwo(n): 
      return (math.ceil(Log2(n)) == math.floor(Log2(n))); 
  #to check whether the given sorted sequnce is forming an AP or not....
  def checkisap(list):
      d=list[1]-list[0]
      for i in range(2,len(list)):
          temp=list[i]-list[i-1]
          if temp !=d:
              return False
      return True
          
  #seive of erathanos
  def primes_method5(n):
      out ={}
      sieve = [True] * (n+1)
      for p in range(2, n+1):
          if (sieve[p]):
              out[p]=1
              for i in range(p, n+1, p):
                  sieve[i] = False
      return out
  #function to get the sum of digits
  def getSum(n): 
        
      strr = str(n)
      list_of_number = list(map(int, strr.strip()))
      return sum(list_of_number)
  def checkperfectsquare(n):
      if (ce(sq(n)) == fl(sq(n))):
          return True
      else:
          return False
  
  #ceil  function gives wrong answer after 10^17 so i have to create my own :)
  # because i don't want to doubt on my solution of 900-1000 problem set.
  def ceildiv(x,y): 
      return (x+y-1)//y 
    
  def di():return map(int, input().split())
  def ii():return int(input())
  def li():return list(map(int, input().split()))
  def si():return list(map(str, input()))
  def indict():
      dic = {}
      for index, value in enumerate(input().split()):
          dic[int(value)] = int(index)+1
      return dic
  def frqdict(): 
      # by default it is for integer input. :)
      dic={}
      for index, value in enumerate(input()):
          if value not in dic:
              dic[value] =1
          else:
              dic[value] +=1
      return dic
  
  #inp = open("input.txt","r")
  #out = open("output.txt","w")
  #Here we go......................
  #practice like your never won
  #perform like you never lost
  t=ii()
  while t:
      t-=1
      n, k=di()
      a=li()
      temp=sorted(a.copy())
    
      dic={}
      for i in range(n):
          dic[a[i]]=i
  
      arraybreak=0
      ind=None
      indele=None
      for i in range(n):
          if ind!=None:
       
              if dic[temp[i]]-dic[indele]!=i-ind:
                  arraybreak+=1
             
                  ind=i
                  indele=temp[i]
           
          else:
              arraybreak+=1
              ind=i
              indele=temp[i]
      
      if arraybreak<=k:
          print("YES")
      else:
          print("NO")
  
  
  
              
              
              
              
  
              
        
                  
                  
  
          
  
              
              
          
              
  
  
  
  
  
  
  
  
  
          
  
          
      
  
  
  
              
  
      
      
      
  
  
  
              
  
              
  
  
      
          
  
  
          
      
  
              
          
      
  
                  
                  
                  
          
          
          
  
              
  
          
  
  
  
  
  
                      
                  
              
          
  
              
      
          
      
      
  
      
          
      
   
  
      
          
  
  
      
          
  
  