#include<bits/stdc++.h>
using namespace std;
int f[105][305][10][10];
int a[105];
int n,lt[4];
int val[8]={0,1,1,2,1,2,2,3};
void nhap()
{
freopen("vknights.inp","r",stdin);
freopen("vknights.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%d ",&a[i]);
lt[0]=1;
for (int i=1;i<=3;i++) lt[i]=lt[i-1]*2;
}
bool get(int x,int k) //////// getbit(x, k - 1)
{
return (x^lt[k-1])<x;
}
bool check(int x,int k)
{
if (k==0) return false;
return (x^lt[k-1])<x;
}
bool check1(int x,int y)
{
if (get(x,1)==1&&get(x,1)==get(y,3)) return false;
if (get(x,3)==1&&get(x,3)==get(y,1)) return false;
return true;
}
bool check2(int x,int y)
{
if (get(x,1)==1&&get(x,1)==get(y,2)) return false;
if (get(x,2)==1&&get(x,2)==get(y,3)) return false;
if (get(x,2)==1&&get(x,2)==get(y,1)) return false;
if (get(x,3)==1&&get(x,3)==get(y,2)) return false;
return true;
}
void xuli()
{
for (int s=0;s<=7;s++)
if (!check(s,a[1])) f[1][val[s]][s][0]=1;
for (int i=2;i<=n;i++)
for (int j=1;j<=3*n;j++)
for (int s=0;s<=7;s++)
for (int p=0;p<=7;p++)
{
if (!check(s,a[i])&&!check(p,a[i-1])&&check1(s,p))
{
int dem=val[s];
if (j<dem) continue;
for (int q=0;q<=7;q++)
if (check2(q,s)&&!check(q,a[i-2])&&check1(q,p))
{
f[i][j][s][p]+=f[i-1][j-dem][p][q];
}
}
}
int mx=0;
for (int i=1;i<=3*n;i++)
for (int s=0;s<=7;s++)
for (int p=0;p<=7;p++) if (f[n][i][s][p]>0) mx=max(mx,i);
int res=0;
for (int s=0;s<=7;s++)
for (int p=0;p<=7;p++) res+=f[n][mx][s][p];
cout<<mx<<' '<<res;
}
int main()
{
nhap();
xuli();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGZbMTA1XVszMDVdWzEwXVsxMF07CmludCBhWzEwNV07CmludCBuLGx0WzRdOwppbnQgdmFsWzhdPXswLDEsMSwyLDEsMiwyLDN9Owp2b2lkIG5oYXAoKQp7CiAgICBmcmVvcGVuKCJ2a25pZ2h0cy5pbnAiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJ2a25pZ2h0cy5vdXQiLCJ3IixzdGRvdXQpOwogICAgc2NhbmYoIiVkIiwmbik7CiAgICBmb3IgKGludCBpPTE7aTw9bjtpKyspIHNjYW5mKCIlZCAiLCZhW2ldKTsKICAgIGx0WzBdPTE7CiAgICBmb3IgKGludCBpPTE7aTw9MztpKyspIGx0W2ldPWx0W2ktMV0qMjsKfQpib29sIGdldChpbnQgeCxpbnQgaykgLy8vLy8vLy8gZ2V0Yml0KHgsIGsgLSAxKQp7CiAgICByZXR1cm4gKHhebHRbay0xXSk8eDsKfQpib29sIGNoZWNrKGludCB4LGludCBrKQp7CiAgICBpZiAoaz09MCkgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuICh4Xmx0W2stMV0pPHg7Cn0KYm9vbCBjaGVjazEoaW50IHgsaW50IHkpCnsKICAgIGlmIChnZXQoeCwxKT09MSYmZ2V0KHgsMSk9PWdldCh5LDMpKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoZ2V0KHgsMyk9PTEmJmdldCh4LDMpPT1nZXQoeSwxKSkgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJuIHRydWU7Cn0KYm9vbCBjaGVjazIoaW50IHgsaW50IHkpCnsKICAgIGlmIChnZXQoeCwxKT09MSYmZ2V0KHgsMSk9PWdldCh5LDIpKSByZXR1cm4gZmFsc2U7CiAgICBpZiAoZ2V0KHgsMik9PTEmJmdldCh4LDIpPT1nZXQoeSwzKSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKGdldCh4LDIpPT0xJiZnZXQoeCwyKT09Z2V0KHksMSkpIHJldHVybiBmYWxzZTsKICAgIGlmIChnZXQoeCwzKT09MSYmZ2V0KHgsMyk9PWdldCh5LDIpKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gdHJ1ZTsKfQp2b2lkIHh1bGkoKQp7CiAgICBmb3IgKGludCBzPTA7czw9NztzKyspCiAgICBpZiAoIWNoZWNrKHMsYVsxXSkpIGZbMV1bdmFsW3NdXVtzXVswXT0xOwogICAgZm9yIChpbnQgaT0yO2k8PW47aSsrKQogICAgZm9yIChpbnQgaj0xO2o8PTMqbjtqKyspCiAgICBmb3IgKGludCBzPTA7czw9NztzKyspCiAgICBmb3IgKGludCBwPTA7cDw9NztwKyspCiAgICB7CiAgICAgICAgaWYgKCFjaGVjayhzLGFbaV0pJiYhY2hlY2socCxhW2ktMV0pJiZjaGVjazEocyxwKSkKICAgICAgICB7CiAgICAgICAgICAgIGludCBkZW09dmFsW3NdOwogICAgICAgICAgICBpZiAoajxkZW0pIGNvbnRpbnVlOwogICAgICAgICAgICBmb3IgKGludCBxPTA7cTw9NztxKyspCiAgICAgICAgICAgIGlmIChjaGVjazIocSxzKSYmIWNoZWNrKHEsYVtpLTJdKSYmY2hlY2sxKHEscCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZbaV1bal1bc11bcF0rPWZbaS0xXVtqLWRlbV1bcF1bcV07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpbnQgbXg9MDsKICAgIGZvciAoaW50IGk9MTtpPD0zKm47aSsrKQogICAgZm9yIChpbnQgcz0wO3M8PTc7cysrKQogICAgZm9yIChpbnQgcD0wO3A8PTc7cCsrKSBpZiAoZltuXVtpXVtzXVtwXT4wKSBteD1tYXgobXgsaSk7CiAgICBpbnQgcmVzPTA7CiAgICBmb3IgKGludCBzPTA7czw9NztzKyspCiAgICBmb3IgKGludCBwPTA7cDw9NztwKyspIHJlcys9ZltuXVtteF1bc11bcF07CiAgICBjb3V0PDxteDw8JyAnPDxyZXM7Cn0KaW50IG1haW4oKQp7CiAgICBuaGFwKCk7CiAgICB4dWxpKCk7Cn0K