/*
Migrated from Lutece 1906 开灯问题
Description
有n盏灯, 编号为1~n. 第1个人把所有灯打开, 第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),
第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开, 开着的灯将被关闭), 依此类推. 一共有k个人, 问最后有哪些灯开着?
Input
有多组测试数据. 输入的第一行是整数T(0<T≤100), 表示测试数据的组数. 每一组测试数据只有一行, 依次为正整数n和k, 两数之间有一个空格. k<=n<=1000.
Output
对应每组输入, 输出一行还开着灯的编号, 按从小到大的顺序, 每个编号后有一个空格.
*/
#include <iostream>
#include <vector>
int main(){
int T;std::cin>>T;
while(T--){
int n,k;std::cin>>n>>k;
if(k==0){
std::cout<<std::endl;
continue;
}else if(k==1){
for(int i=1;i<=n;++i){
std::cout<<i<<" ";
}
std::cout<<std::endl;
continue;
}
std::vector<bool> lights(n+1,true);
for(int person = 2;person<=k;++person){
for(int i = person;i<=n;i+=person){
lights[i]=!lights[i];//按下开关
}
}
for(int i=1;i<=n;++i){
if(lights[i]){
std::cout<<i<<" ";
}
}
std::cout<<std::endl;
}
}