//注意数据范围 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; unsigned __int64 a[110]; //unsigned __int64正数范围是 __int64的2倍 int id; int tt[100]; void run() { unsigned __int64 m; int n; cin>>m>>n; for (int i=1; i<=n; i++) //取最后n位 { tt[n-i]=m%2; m/=2; } id=0; for (int i=0; i<n; i++) { unsigned __int64 tmp=0; for (int j=0; j<n; j++) { tmp=tmp*2+tt[(i+j)%n]; //循环取数形成结果 } a[id++]=tmp; } sort(a,a+id); for (int i=0; i<n; i++) { printf("%d",(int)(a[i]%2)); //%2 } printf("\n"); } int main() { int T; scanf("%d",&T); while(T--) run(); return 0; }