#include <queue>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
#define INF 100
class Egalitarianism{
public:
int maxDifference(vector <string> isFriend, int d){
int a[55];
int ret = 0;
int N = isFriend.size();
for( int i=0; i<N; i++ ){
for( int j=0; j<N; j++ ) a[j]=INF;
a[i]=0;
queue<int> q;
q.push( i );
while( !q.empty() ){
int j = q.front(); q.pop();
for( int k=0; k<N; k++ ){
if( isFriend[j][k] == 'Y' && a[k] == INF ){
a[k] = a[j]+1;
q.push( k );
}
}
}
int b = *max_element( a, a+N );
ret = max( ret, b );
}
if( ret == INF ) return -1;
return ret * d;
}
};
I2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIElORiAxMDAKY2xhc3MgRWdhbGl0YXJpYW5pc217CnB1YmxpYzoKICBpbnQgbWF4RGlmZmVyZW5jZSh2ZWN0b3IgPHN0cmluZz4gaXNGcmllbmQsIGludCBkKXsKICAgIGludCBhWzU1XTsKICAgIGludCByZXQgPSAwOwogICAgaW50IE4gPSBpc0ZyaWVuZC5zaXplKCk7CiAgICBmb3IoIGludCBpPTA7IGk8TjsgaSsrICl7CiAgICAgIGZvciggaW50IGo9MDsgajxOOyBqKysgKSBhW2pdPUlORjsKICAgICAgYVtpXT0wOwogICAgICBxdWV1ZTxpbnQ+IHE7CiAgICAgIHEucHVzaCggaSApOwogICAgICB3aGlsZSggIXEuZW1wdHkoKSApewogICAgICAgIGludCBqID0gcS5mcm9udCgpOyBxLnBvcCgpOwogICAgICAgIGZvciggaW50IGs9MDsgazxOOyBrKysgKXsKICAgICAgICAgIGlmKCBpc0ZyaWVuZFtqXVtrXSA9PSAnWScgJiYgYVtrXSA9PSBJTkYgKXsKICAgICAgICAgICAgYVtrXSA9IGFbal0rMTsKICAgICAgICAgICAgcS5wdXNoKCBrICk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICAgIGludCBiID0gKm1heF9lbGVtZW50KCBhLCBhK04gKTsKICAgICAgcmV0ID0gbWF4KCByZXQsIGIgKTsKICAgIH0KICAgIGlmKCByZXQgPT0gSU5GICkgcmV0dXJuIC0xOwogICAgcmV0dXJuIHJldCAqIGQ7CiAgfQp9Ow==