#include<bits/stdc++.h>
using namespace std;
int n;
char maps[30][30] = {};
bool book[30][30] = {};
int cnt = 0;
void dfs(int stx, int sty)
{
if(stx < 1 || stx > n || sty < 1 || sty > n)
{
cnt++;
return;
}
if(!book[stx][sty] && maps[stx][sty] == 'U')
{
book[stx][sty] = true;
dfs(stx - 1, sty);
book[stx][sty] = false;
}
if(!book[stx][sty] && maps[stx][sty] == 'D')
{
book[stx][sty] = true;
dfs(stx + 1, sty);
book[stx][sty] = false;
}
if(!book[stx][sty] && maps[stx][sty] == 'L')
{
book[stx][sty] = true;
dfs(stx, sty - 1);
book[stx][sty] = false;
}
if(!book[stx][sty] && maps[stx][sty] == 'R')
{
book[stx][sty] = true;
dfs(stx, sty + 1);
book[stx][sty] = false;
}
}
int main()
{
char ch;
cin >> n;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
cin >> maps[i][j];
}
getchar();
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
dfs(i, j);
memset(book, 0, sizeof(book));
}
}
cout << cnt << endl;
return 0;
}
12-16
3289
09-06