#include<stdio.h>
long long int t, tmp, ans[20005], top = 1;
long long gcd(long long a,long long b)
{
return b ? gcd(b, a % b) : a;
}
void solve(long long int n, long long int m, long long int res)
{
if(n > m)
{
tmp = m;
m = n;
n = tmp;
}
if(res == 0)
{
return;
}
long long int k = m - m % n;
while(k--)
{
ans[top++] = n;
}
solve(n, m % n, n * (m % n));
return;
}
int main()
{
scanf("%d",&t);
while(t--)
{
long long n, m;
top = 1;
scanf("%lld%lld", &n, &m);
solve(n, m, n * m);
long long l = n + m - gcd(n, m);
printf("%lld\n", l);
int i;
for(i=1;i<=l;i++)
{
printf("%lld ",ans[i]);
}
printf("\n");
}
}