import java.util.Scanner;
import java.util.List;
import java.util.ArrayList;
class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int t = scanner.nextInt();
List<DataGroup> allDataGroups = new ArrayList<>();
for (int i = 0; i < t; i++){
int n = scanner.nextInt();
int k = scanner.nextInt();
scanner.nextLine();
String[] s = scanner.nextLine().split(" ");
int[] strings = new int[n];
for (int j = 0; j < n; j++) {
strings[j] = Integer.parseInt(s[j]);
}
DataGroup dataGroup = new DataGroup(strings, k);
allDataGroups.add(dataGroup);
}
scanner.close();
for (DataGroup dataGroup : allDataGroups) {
ifSame(dataGroup.getData(), dataGroup.getX());
}
}
public static void ifSame(int[] strings,int k){
int gcd = findGCD(strings);
int count = 0;
for(int j=0;j<strings.length;j++){
count += strings[j]/gcd-1;
}
if(count <= k){
System.out.println("YES");
}else{
System.out.println("NO");
}
}
public static int gcd(int a,int b){
if(b!=0){
int temp = 1;
while(temp!=0){
temp=a%b;
a=b;
b=temp;
}
return a;
}
return -1;
}
public static int findGCD(int[] nums){
int result = nums[0];
for(int i=1;i<nums.length;i++){
result = gcd(result,nums[i]);
}
return result;
}
static class DataGroup {
private int[] data;
private int x;
public DataGroup(int[] data, int x) {
this.data = data;
this.x = x;
}
public int[] getData() {
return data;
}
public int getX() {
return x;
}
}
}