input: from typing import List
  
  def shortest_special_subarray(nums: List[int], k: int) -> int:
      """
      Given a list of non-negative integers and a target integer k, find a subarray that meets the following condition:
  
      A subarray is defined as special if the bitwise OR of all its elements is at least k.
  
      Return the minimum length of such a non-empty special subarray, or return -1 if there is no such subarray.
  
      Examples:
      >>> nums = [1,2,3], k = 2
      1
      >>> nums = [2,1,8], k = 10
      3
      >>> nums = [1,2], k = 0
      1
  
      Constraints:
      1 <= len(nums) <= 50
      0 <= nums[i] <= 50
      0 <= k < 64
      """
output:     n = len(nums)
      min_length = float('inf')
      
      for start in range(n):
          or_value = 0
          for end in range(start, n):
              or_value |= nums[end]
              if or_value >= k:
                  min_length = min(min_length, end - start + 1)
                  break
                  
      return min_length if min_length != float('inf') else -1