#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <array>
using namespace std;
typedef long long ll;
#define SZ(a) (int)(a).size()
const int mod = 1000000007;
int main() {
cin.sync_with_stdio(false);
int n, m, k;
cin >> n >> m >> k;
vector<string> a(n);
int sx, sy;
for (int i = 0; i < n; i++) {
cin >> a[i];
auto j = a[i].find('R');
if (j != string::npos) {
sx = i;
sy = j;
}
}
array<vector<vector<int>>,2> dp;
for (int l = 0; l < 2; l++) {
dp[l].assign(n, vector<int>(m, 0));
}
dp[0][sx][sy] = 1;
for (int l = 1; l <= k; l++) {
auto cur = l & 1;
auto prv = cur ^ 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
dp[cur][i][j] = 0;
if (a[i][j] != '#') {
if (i > 0) {
dp[cur][i][j] += dp[prv][i-1][j];
dp[cur][i][j] %= mod;
}
if (i < n-1) {
dp[cur][i][j] += dp[prv][i+1][j];
dp[cur][i][j] %= mod;
}
if (j > 0) {
dp[cur][i][j] += dp[prv][i][j-1];
dp[cur][i][j] %= mod;
}
if (j < m-1) {
dp[cur][i][j] += dp[prv][i][j+1];
dp[cur][i][j] %= mod;
}
}
}
}
}
auto cur = k & 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d%c", dp[cur][i][j], " \n"[j == m-1]);
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YXJyYXk+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwojZGVmaW5lIFNaKGEpIChpbnQpKGEpLnNpemUoKQogCmNvbnN0IGludCBtb2QgPSAxMDAwMDAwMDA3OwogCmludCBtYWluKCkgewoJY2luLnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CglpbnQgbiwgbSwgazsKCWNpbiA+PiBuID4+IG0gPj4gazsKCXZlY3RvcjxzdHJpbmc+IGEobik7CglpbnQgc3gsIHN5OwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQljaW4gPj4gYVtpXTsKCQlhdXRvIGogPSBhW2ldLmZpbmQoJ1InKTsKCQlpZiAoaiAhPSBzdHJpbmc6Om5wb3MpIHsKCQkJc3ggPSBpOwoJCQlzeSA9IGo7CgkJfQoJfQoJYXJyYXk8dmVjdG9yPHZlY3RvcjxpbnQ+PiwyPiBkcDsKCWZvciAoaW50IGwgPSAwOyBsIDwgMjsgbCsrKSB7CgkJZHBbbF0uYXNzaWduKG4sIHZlY3RvcjxpbnQ+KG0sIDApKTsKCX0KCWRwWzBdW3N4XVtzeV0gPSAxOwoJZm9yIChpbnQgbCA9IDE7IGwgPD0gazsgbCsrKSB7CgkJYXV0byBjdXIgPSBsICYgMTsKCQlhdXRvIHBydiA9IGN1ciBeIDE7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQkJZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKCQkJCWRwW2N1cl1baV1bal0gPSAwOwoJCQkJaWYgKGFbaV1bal0gIT0gJyMnKSB7CgkJCQkJaWYgKGkgPiAwKSB7CgkJCQkJCWRwW2N1cl1baV1bal0gKz0gZHBbcHJ2XVtpLTFdW2pdOwoJCQkJCQlkcFtjdXJdW2ldW2pdICU9IG1vZDsKCQkJCQl9CgkJCQkJaWYgKGkgPCBuLTEpIHsKCQkJCQkJZHBbY3VyXVtpXVtqXSArPSBkcFtwcnZdW2krMV1bal07CgkJCQkJCWRwW2N1cl1baV1bal0gJT0gbW9kOwoJCQkJCX0KCQkJCQlpZiAoaiA+IDApIHsKCQkJCQkJZHBbY3VyXVtpXVtqXSArPSBkcFtwcnZdW2ldW2otMV07CgkJCQkJCWRwW2N1cl1baV1bal0gJT0gbW9kOwoJCQkJCX0KCQkJCQlpZiAoaiA8IG0tMSkgewoJCQkJCQlkcFtjdXJdW2ldW2pdICs9IGRwW3Bydl1baV1baisxXTsKCQkJCQkJZHBbY3VyXVtpXVtqXSAlPSBtb2Q7CgkJCQkJfQoJCQkJfQoJCQl9CgkJfQoJfQoJYXV0byBjdXIgPSBrICYgMTsKCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CgkJZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKCQkJcHJpbnRmKCIlZCVjIiwgZHBbY3VyXVtpXVtqXSwgIiBcbiJbaiA9PSBtLTFdKTsKCQl9Cgl9CglyZXR1cm4gMDsKfQog