#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
int n;
string s;
long long dp[3005][3005];
main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
freopen("TEST.inp", "r", stdin);
freopen("TEST.out", "w", stdout);
cin >> n;
cin >> s;
s = " " + s;
dp[1][1] = 1;
for (int i = 2; i <= n; i++) {
if (s[i - 1] == '<') {
for (int j = 1; j <= i; j++)
dp[i][j] = dp[i - 1][j - 1];
} else {
for (int j = 1; j <= i; j++) {
dp[i][j] = dp[i - 1][i - 1] - dp[i - 1][j - 1];
if (dp[i][j] < 0) dp[i][j] += MOD;
}
}
for (int j = 1; j <= i; j++) {
dp[i][j] += dp[i][j - 1];
if (dp[i][j] >= MOD) dp[i][j] -= MOD;
}
}
cout << dp[n][n] << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxvbmcgbG9uZyBNT0QgPSAxZTkgKyA3OwppbnQgbjsKc3RyaW5nIHM7CmxvbmcgbG9uZyBkcFszMDA1XVszMDA1XTsKCm1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgZnJlb3BlbigiVEVTVC5pbnAiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oIlRFU1Qub3V0IiwgInciLCBzdGRvdXQpOwogICAgY2luID4+IG47CiAgICBjaW4gPj4gczsKCiAgICBzID0gIiAiICsgczsKICAgIGRwWzFdWzFdID0gMTsKICAgIGZvciAoaW50IGkgPSAyOyBpIDw9IG47IGkrKykgewogICAgICAgIGlmIChzW2kgLSAxXSA9PSAnPCcpIHsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gaTsgaisrKQogICAgICAgICAgICAgICAgZHBbaV1bal0gPSBkcFtpIC0gMV1baiAtIDFdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGZvciAoaW50IGogPSAxOyBqIDw9IGk7IGorKykgewogICAgICAgICAgICAgICAgZHBbaV1bal0gPSBkcFtpIC0gMV1baSAtIDFdIC0gZHBbaSAtIDFdW2ogLSAxXTsKICAgICAgICAgICAgICAgIGlmIChkcFtpXVtqXSA8IDApIGRwW2ldW2pdICs9IE1PRDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IgKGludCBqID0gMTsgaiA8PSBpOyBqKyspIHsKICAgICAgICAgICAgZHBbaV1bal0gKz0gZHBbaV1baiAtIDFdOwogICAgICAgICAgICBpZiAoZHBbaV1bal0gPj0gTU9EKSBkcFtpXVtqXSAtPSBNT0Q7CiAgICAgICAgfQogICAgfQoKICAgIGNvdXQgPDwgZHBbbl1bbl0gPDwgJ1xuJzsKCiAgICByZXR1cm4gMDsKfQo=