const val MOD = 1_000_000_007 fun main() { readln() val s = readln() val dp = Array(s.length + 1) { IntArray(500) } fun add(l1: Int, c1: Int, l2: Int, c2:Int) { //if (dp[l2][c2] != 0) println("($l2, $c2) -> ($l1, $c1)") dp[l1][c1] += dp[l2][c2] if (dp[l1][c1] >= MOD) dp[l1][c1] -= MOD } dp[0][0] = 1 for (i in s.indices) { if (s[i] == '#') continue for (j in 0 until 499) { add(i + 1, j, i, j) if (i + j + 2 >= s.length || s[i + j + 2] == '.') { add(minOf(s.length, i + j + 2), j + 1, i, j) } } } println(dp.last().sumOf { it.toLong() } % MOD) } private fun readInt() = readln().toInt() private fun readLongs() = readStrings().map { it.toLong() } private fun readStrings() = readln().split(" ") private fun readInts() = readStrings().map { it.toInt() }