#include <iostream>
using namespace std;
int main() {
// your code goes here
int t, l, c;
char p;
cin >> t;
while (t != 0) {
cin >> l >> c;
if (l == c) {
for (int i = 0; i < l; i++) {
p = '*';
cout << p;
}
cout << endl;
for (int j = 2; j < l; j++) {
p = '*';
cout << p;
for (int i = 2; i < c; i++) {
p = '.';
cout << p;
}
p = '*';
cout << p;
cout << endl;
}
for (int i = 0; i < l; ) {
p = '*';
cout << p;
++i;
}
cout<<endl;
}
if(l!=c||l<c||c<l){
for (int i = 0; i < l; ) {
for (int j = 0; j < c;) {
p = '*';
cout << p;
j++;
}
++i;
cout<<endl;
}
}
if (l == 2 && c == 2) {
for (int i = 0; i < l;) {
for (int j = 0; j < c; j++) {
p = '*';
cout << p;
}
++i;
cout << endl;
}
}
--t;
cout<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7Ci8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCgkJCWludCB0LCBsLCBjOwoJCQljaGFyIHA7CgkJCWNpbiA+PiB0OwoJCQl3aGlsZSAodCAhPSAwKSB7CgkJCQljaW4gPj4gbCA+PiBjOwoJCQkJaWYgKGwgPT0gYykgewoJCQkJCSAKCQkJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBsOyBpKyspIHsKCQkJCQkJCXAgPSAnKic7CgkJCQkJCQljb3V0IDw8IHA7CgkJCQkJCX0KCQkJCQkJY291dCA8PCBlbmRsOwoJCQkJCQlmb3IgKGludCBqID0gMjsgaiA8IGw7IGorKykgewoJCQkJCQkJcCA9ICcqJzsKCQkJCQkJCWNvdXQgPDwgcDsKCQkJCQkJCWZvciAoaW50IGkgPSAyOyBpIDwgYzsgaSsrKSB7CgkJCQkJCQkJcCA9ICcuJzsKCQkJCQkJCQljb3V0IDw8IHA7CgkJCQkJCQl9CgkJCQkJCQlwID0gJyonOwoJCQkJCQkJY291dCA8PCBwOwoJCQkJCQkJY291dCA8PCBlbmRsOwoJCQkJCQl9CgkJCQkJCWZvciAoaW50IGkgPSAwOyBpIDwgbDsgKSB7CgkJCQkJCQlwID0gJyonOwoJCQkJCQkJY291dCA8PCBwOwoJCQkJCQkJKytpOwoJCQkJCQl9CgkJCQkJY291dDw8ZW5kbDsKCQkJCQkKCQoJCQkJfQoJCQkJCgkJCQkgaWYobCE9Y3x8bDxjfHxjPGwpewoJCQkJCSAKCQkJCQlmb3IgKGludCBpID0gMDsgaSA8IGw7ICkgewoJCQkJCQlmb3IgKGludCBqID0gMDsgaiA8IGM7KSB7CgkJCQkJCQlwID0gJyonOwoJCQkJCQkJY291dCA8PCBwOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqKys7CgkJCQkJCX0KCQkJCQkJKytpOwoJCQkJCQljb3V0PDxlbmRsOwoJCQkJCQkKCQkJCQl9CgoJCQkJfQoJCQkJaWYgKGwgPT0gMiAmJiBjID09IDIpIHsKCQkJCQkKCQkJCQlmb3IgKGludCBpID0gMDsgaSA8IGw7KSB7CgkJCQkJCWZvciAoaW50IGogPSAwOyBqIDwgYzsgaisrKSB7CgkJCQkJCQlwID0gJyonOwoJCQkJCQkJY291dCA8PCBwOwoKCQkJCQkJfQoJCQkJCQkrK2k7CgkJCQkJCWNvdXQgPDwgZW5kbDsKCQkJCQl9CgkJCQl9CgoJCQkJCgkJCQktLXQ7CgkJCQljb3V0PDxlbmRsOwoJCQkJCgkJCX0KCQkKcmV0dXJuIDA7Cn0=