//#include<time.h>
#include<bits/stdc++.h>
#define fi(i, a, b) for(int i = a; i < b ; ++i)
#define fd(i, a, b) for(int i = a; i > b ; --i)
#define all(c) c.begin(), c.end()
#define llu long long
using namespace::std;
char a[1001],b[1001];
int lcs[1001][1001];
int aid[1001];
int bid[1001];
//void print(char i)
//{
// cout<<i;
//}
int main()
{
int t, n, m, T = 0, q = 0;
// clock_t c;
// c = clock();
// freopen("in.txt", "r", stdin);
scanf("%d", &t);
while(++T <=t )
{
scanf("%d %s", &n, a);
scanf("%d %s", &m, b);
/** cout<<"\na using for_each : \t";
for_each(a.begin(), a.end(), print);
cout<<"\na using for : \t";
fi(i, 1, n+1)
cout<<a.at(i-1); **/
fi(i, 0, n)
{fi(j, 0, m)
if(a[i] == b[j]) lcs[i+1][j+1] = lcs[i][j] +1;
else lcs[i+1][j+1] = max(lcs[i+1][j], lcs[i][j+1]);
}
int nn = n;
int mm = m;
q = 0;
while(n>0 && m>0)
{
if(a[n-1] == b[m-1])
{
aid[q] = n;
bid[q++] = m;
n--;
m--;
}
else if(lcs[n-1][m] > lcs[n][m-1])
n--;
else m--;
}
if(lcs[nn][mm] > 1)
{
printf("case %d Y\n", T);
printf("%d\n", lcs[nn][mm]);
for(int i = q-1; i >=0; --i)
printf("%c %d %d\n",a[aid[i]-1], aid[i], bid[i]);
}
else printf("case %d N\n", T);
// fi(i, 1, nn+1)
// {
// fi(j, 1, mm+1)
// cout<<lcs[i][j]<<' ';
// cout<<endl;
// }
// cout<<"\n**************************************************888**************************\n";
}
// cout<<t<<"clicks"<<" "<<((float)t)/CLOCKS_PER_SEC<<"seconds";
return 0;
}
Ly8jaW5jbHVkZTx0aW1lLmg+CiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmkoaSwgYSwgYikgZm9yKGludCBpID0gYTsgaSA8IGIgOyArK2kpCiNkZWZpbmUgZmQoaSwgYSwgYikgZm9yKGludCBpID0gYTsgaSA+IGIgOyAtLWkpCiNkZWZpbmUgYWxsKGMpIGMuYmVnaW4oKSwgYy5lbmQoKQojZGVmaW5lIGxsdSBsb25nIGxvbmcKCnVzaW5nIG5hbWVzcGFjZTo6c3RkOwpjaGFyIGFbMTAwMV0sYlsxMDAxXTsKaW50IGxjc1sxMDAxXVsxMDAxXTsKaW50IGFpZFsxMDAxXTsKaW50IGJpZFsxMDAxXTsKLy92b2lkIHByaW50KGNoYXIgaSkKLy97Ci8vICAgIGNvdXQ8PGk7Ci8vfQppbnQgbWFpbigpCnsKICAgIGludCB0LCBuLCBtLCBUID0gMCwgcSA9IDA7Ci8vICAgIGNsb2NrX3QgYzsKLy8gICAgYyA9IGNsb2NrKCk7Ci8vICAgIGZyZW9wZW4oImluLnR4dCIsICJyIiwgc3RkaW4pOwogICBzY2FuZigiJWQiLCAmdCk7CiAgICB3aGlsZSgrK1QgPD10ICkKICAgIHsKICAgICAgICBzY2FuZigiJWQgJXMiLCAmbiwgYSk7CiAgICAgICAgc2NhbmYoIiVkICVzIiwgJm0sIGIpOwovKiogICAgICAgIGNvdXQ8PCJcbmEgdXNpbmcgZm9yX2VhY2ggOiBcdCI7CiAgICAgICAgZm9yX2VhY2goYS5iZWdpbigpLCBhLmVuZCgpLCBwcmludCk7CiAgICAgICAgY291dDw8IlxuYSB1c2luZyBmb3IgOiBcdCI7CiAgICAgICAgZmkoaSwgMSwgbisxKQogICAgICAgIGNvdXQ8PGEuYXQoaS0xKTsgICAgICAgICoqLwoKICAgIGZpKGksIDAsIG4pCiAgICB7ZmkoaiwgMCwgbSkKICAgIGlmKGFbaV0gPT0gYltqXSkgbGNzW2krMV1baisxXSA9IGxjc1tpXVtqXSArMTsKICAgIGVsc2UgIGxjc1tpKzFdW2orMV0gPSBtYXgobGNzW2krMV1bal0sIGxjc1tpXVtqKzFdKTsKICAgIH0KCmludCBubiA9IG47CmludCBtbSA9IG07CnEgPSAwOwogICAgd2hpbGUobj4wICYmIG0+MCkKICAgIHsKICAgICAgICBpZihhW24tMV0gPT0gYlttLTFdKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhaWRbcV0gPSBuOwogICAgICAgICAgICAgICAgYmlkW3ErK10gPSBtOwogICAgICAgICAgICAgICAgbi0tOwogICAgICAgICAgICAgICAgbS0tOwogICAgICAgICAgICB9CiAgICAgICAgZWxzZSBpZihsY3Nbbi0xXVttXSA+IGxjc1tuXVttLTFdKQogICAgICAgIG4tLTsKICAgICAgICBlbHNlIG0tLTsKICAgIH0KICAgIGlmKGxjc1tubl1bbW1dID4gMSkKICAgIHsKICAgICAgICBwcmludGYoImNhc2UgICVkIFlcbiIsIFQpOwogICAgICAgIHByaW50ZigiJWRcbiIsIGxjc1tubl1bbW1dKTsKICAgICAgICBmb3IoaW50IGkgPSBxLTE7IGkgPj0wOyAtLWkpCiAgICAgICAgICAgIHByaW50ZigiJWMgJWQgJWRcbiIsYVthaWRbaV0tMV0sICBhaWRbaV0sIGJpZFtpXSk7CiAgICB9CiAgICBlbHNlIHByaW50ZigiY2FzZSAlZCBOXG4iLCBUKTsKLy8gICAgZmkoaSwgMSwgbm4rMSkKLy8gICAgewovLyAgICAgICAgZmkoaiwgMSwgbW0rMSkKLy8gICAgY291dDw8bGNzW2ldW2pdPDwnICc7Ci8vICAgIGNvdXQ8PGVuZGw7Ci8vICAgIH0KLy8gICAgY291dDw8IlxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio4ODgqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIjsKICAgIH0KLy8gICAgY291dDw8dDw8ImNsaWNrcyI8PCIgIjw8KChmbG9hdCl0KS9DTE9DS1NfUEVSX1NFQzw8InNlY29uZHMiOwoKICAgIHJldHVybiAwOwp9Cg==