#include <bits/stdc++.h>
int main() {
  long int n, a[100001], i, flag;
  char c[100001], c1;
  while (scanf("%ld", &n) == 1) {
    flag = 0;
    long int a1[100001] = {0};
    c1 = getchar();
    gets(c);
    for (i = 0; i < n; i++) {
      scanf("%ld", &a[i]);
    }
    i = 0;
    while (1) {
      if (c[i] == '>' && a1[i] == 0) {
        a1[i] = 1;
        i += a[i];
        if (i >= n) {
          flag = 1;
          break;
        }
      } else if (c[i] == '<' && a1[i] == 0) {
        a1[i] = 1;
        i -= a[i];
        if (i < 0) {
          flag = 1;
          break;
        }
      } else {
        flag = 0;
        break;
      }
    }
    if (flag == 1) {
      printf("FINITE\n");
    } else {
      printf("INFINITE\n");
    }
  }
  return 0;
}
