/*
皮卡丘冲鸭！
へ　　　　　／|
　　/＼7　　　 ∠＿/
　 /　│　　 ／　／
　│　Z ＿,＜　／　　 /`ヽ
　│　　　　　ヽ　　 /　　〉
　 Y　　　　　`　 /　　/
　ｲ●　､　●　　⊂⊃〈　　/
　()　 へ　　　　|　＼〈
　　>ｰ ､_　 ィ　 │ ／／
　 / へ　　 /　ﾉ＜| ＼＼
　 ヽ_ﾉ　　(_／　 │／／
　　7　　　　　　　|／
　　＞―r￣￣`ｰ―＿
*/
#include <iostream>
#define For(i,x,y) for(int i=(x); i<=(y); i++)
#define fori(i,x,y) for(int i=(x); i<(y); i++)
#define rep(i,y,x) for(int i=(y); i>=(x); i--)
#define mst(x,a) memset(x,a,sizeof(x))
#define pb push_back
#define sz(a) (int)a.size()
#define mp make_pair
#define fi first
#define se second
using namespace std;
typedef long long ll;
typedef pair<int,int>pa;
typedef pair<ll,ll>pai;
const int N = 1e3;
const int M = 1e5;
ll f[66][2];
const string ju[]={"AND","OR"};
int main()
{
    ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    int n;
    cin>>n;
    string s[70];
    ll a[70];
    For(i,1,n){
        cin>>s[i];
        a[i] = s[i]==ju[0]?1:0;
    }
    int pre = 0;
    int ans = 0;
    f[0][0] = 1;
    f[0][1] = 1;
    For(i,1,n){
        if(a[i]){
            f[i][0] = f[i-1][1] + f[i-1][0]*2;
            //f[i][1] = f[pre][1];
            f[i][1] = f[i-1][1];//if(pre!=0&&i-pre>1)f[i][1] = f[pre][1]*(1<<(i-pre-1)) + f[pre][0]*(1<<(i-pre-2));
            //else f[i][1] = f[pre][1];

        }else {
            f[i][1] = f[i-1][0] + f[i-1][1]*2;
            f[i][0] = f[i-1][0];
        }//ans = max(f[i][1],ans);
    }
    cout<<f[n][1]<<endl;
    return 0;
}

#include <bits/stdc++.h>
using namespace std;

#define nl "\n"
#define nf endl
#define ll long long
#define pb push_back
#define _ << ' ' <<

#define INF (ll)1e18
#define mod 998244353
#define maxn 110

ll i, i1, j, k, k1, t, n, m, res, flag[10], a, b;
string s;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    #if !ONLINE_JUDGE && !EVAL
        ifstream cin("input.txt");
        ofstream cout("output.txt");
    #endif

    cin >> n >> s; s = '#' + s;

    if (s[1] != s[n]) {
        cout << 1 << nl; return 0;
    }

    for (i = 1; i <= n - 1; i++) {
        if (s[i] != s[1] && s[i + 1] != s[1]) {
            cout << 2 << nl; return 0;
        }
    }

    cout << -1 << nl;

    return 0;
}
