#include<bits/stdc++.h>
using namespace std;
bool mi[1010][1010];
void solve(){
int n,m; cin>>n >>m;
for(int i=0;i<n;i++) for(int j=0;j<m;j++) mi[i][j]=0;
int ans=-1,pa=67;
for(int ca=0;ca<=n;ca++){
//int lt=(n-ca)*m+ca*((m-1)/2);
int lt=ca*((m-1)/2);
int cost=((n+2)/2)-(n-ca);
int got=min(m,cost<=0?INT_MAX:lt/cost);
if(ca+got>ans){
ans=ca+got;
pa=ca;
}
}
set<pair<int,int>> s;
for(int i=0;i<pa;i++){
s.insert({(m-1)/2,i});
}
for(int i=0;i<ans-pa;i++){
int need=((n+2)/2)-(n-pa);
vector<pair<int,int>> bk;
for(int j=0;j<need;j++){
auto it=s.end();
it--;
mi[it->second][i]=1;
auto p=*it;
p.first--;
if(p.first!=0) bk.push_back(p);
s.erase(it);
}
for(auto p:bk) s.insert(p);
}
cout<<ans <<"\n";
queue<int> q;
for(int i=0;i<pa;i++){
for(int j=0;j<m;j++){
if(mi[i][j]) cout<<"-";
else cout<<"+";
}
cout<<"\n";
}
for(int i=pa;i<n;i++){
for(int j=0;j<m;j++){
cout<<"-";
}
cout<<"\n";
}
}
int main(){
// ios_base::sync_with_stdio(0);
// cin.tie(0);
int t; cin>>t;
while(t--){
solve();
}
}