#include <bits/stdc++.h>
using namespace std;
long long n;
string t;
int main() {
	cin>>n>>t;
	int p=3;
	long long q=1e10,u=200000;
	string s;
	for(int i=0;i<u;i++) {
		s+="110";
	}
	long long tmpans=0,ans=0;
	if(n==1) {
		if(t=="1") {
			ans=2*q;
		} else {
			ans=q;
		} 
	}else if (n==2) {
			if(t=="11"||t=="10") {
				ans=q;
			} else if(t=="01") {
				ans=q-1;
			} else {
				ans=0;
			}
		} else if(n==3) {
			if(t=="110") {
				ans=q;
			} else if (t=="101"||t=="011") {
				ans=q-1;
			} else {
				ans=0;
			}
		} else {
			for(int i=0;i<p;i++) {
				bool ok=true;
				for(int j=0;j<n;j++) {
					if(t[j]!=s[i+j]) {
						ok=false;
						break;
					}
				}
			if(ok) {
				long long tmp=n-1;
				tmp+=i;
				tmp/=3;
				ans+=q-tmp;
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}



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

int main()
{
	int n;
	cin>>n;
		
	string s;
	cin>>s;
	
	long long ans=0;
	
	string tt = "110";
	
	if(s.size() == 1)
	{
		if(s[0]=='1')
			ans = 2e10;
		else
			ans = 1e10;
	}
	else if(s.size()==2)
	{
		if(s=="11")
		{
			ans = 1e10;
		}
		else if(s=="10")
		{
			ans = 1e10;
		}
		else if(s=="01")
		{
			ans = 1e10-1;
		}
	}
	else
	{
		long long cnt = 0;
		if(s.substr(0,2)=="10")
		{
			cnt++;
			s = s.substr(2);
		}
		else if(s.substr(0,1)=="0")
		{
			cnt++;
			s = s.substr(1);
		}
				
		int ind = 0;		
		for(int i=0;i<s.size();i++)
		{
			if(s[i]!=tt[ind])
			{
				cout<<0<<endl;
				return 0;
			}
			
			ind++;
			
			if(ind == 3)
			{
				cnt++,ind = 0;
			}
		}
		
		if(ind)
			cnt++;
		
		ans = 1e10-cnt+1;
	}
	
	cout<<ans<<endl;
	
	return 0;
}