#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  char b[100005];
  long long a[100005] = {0};
  bool vis[100005];
  memset(b, 0, sizeof b);
  memset(vis, 0, sizeof vis);
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
  }
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  long long i1 = 1;
  int j = 0;
  while (1) {
    j++;
    if (b[i1] == '>') {
      i1 += a[i1];
      if (i1 <= n && i1 > 0) {
        if (!vis[i1])
          vis[i1] = 1;
        else {
          cout << "INFINITE";
          return 0;
        }
      }
    } else if (b[i1] == '<') {
      i1 -= a[i1];
      if (i1 > 0 && i1 <= n) {
        if (!vis[i1])
          vis[i1] = 1;
        else if (vis[i1]) {
          cout << "INFINITE";
          return 0;
        }
      }
    }
    if (i1 > n || i1 <= 0) {
      cout << "FINITE";
      return 0;
    }
  }
  return 0;
}
