#include <bits/stdc++.h>
using namespace std;
vector<int> fun(vector<int>&a,vector<int>&b,int n){
vector<vector<int>>dpe(n,vector<int>(2,0));
vector<vector<int>>dpo(n,vector<int>(2,0));
if(a[0]%2==0){
dpe[0][0]=1;//-> dp[i][0]number of even journeys till index i of first array
}
if(a[0]%2!=0){
dpo[0][0]=1;
}
if(b[0]%2==0){
dpe[0][1]=1;
}
if(b[0]%2!=0){
dpo[0][1]=1;
}
for(int i=1;i<n;i++){
if(a[i]%2==0){
dpe[i][0]=dpe[i-1][0]+dpe[i-1][1];
dpo[i][0]=dpo[i-1][0]+dpo[i-1][1];
}
else{
dpe[i][0]=dpo[i-1][0]+dpo[i-1][1];
dpo[i][0]=dpe[i-1][0]+dpe[i-1][1];
}
if(b[i]%2==0){
dpe[i][1]=dpe[i-1][0]+dpe[i-1][1];
dpo[i][1]=dpo[i-1][0]+dpo[i-1][1];
}
else{
dpe[i][1]=dpo[i-1][0]+dpo[i-1][1];
dpo[i][1]=dpe[i-1][0]+dpe[i-1][1];
}
}
return {dpe[n-1][0]+dpe[n-1][1],dpo[n-1][0]+dpo[n-1][1]};
}
int main()
{
vector<int>a={2,2};
vector<int>b={4,1};
vector<int>ans=fun(a,b,2);
for(int i:ans){
cout<<i<< " ";
}cout<<endl;
return 0;
}
CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8aW50PiBmdW4odmVjdG9yPGludD4mYSx2ZWN0b3I8aW50PiZiLGludCBuKXsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5kcGUobix2ZWN0b3I8aW50PigyLDApKTsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj5kcG8obix2ZWN0b3I8aW50PigyLDApKTsKICAgIGlmKGFbMF0lMj09MCl7CiAgICAgICAgZHBlWzBdWzBdPTE7Ly8tPiAgZHBbaV1bMF1udW1iZXIgb2YgZXZlbiBqb3VybmV5cyB0aWxsIGluZGV4IGkgb2YgZmlyc3QgYXJyYXkgCiAgICB9CiAgICBpZihhWzBdJTIhPTApewogICAgICAgIGRwb1swXVswXT0xOwogICAgfQogICAgaWYoYlswXSUyPT0wKXsKICAgICAgICBkcGVbMF1bMV09MTsKICAgIH0KICAgIGlmKGJbMF0lMiE9MCl7CiAgICAgICAgZHBvWzBdWzFdPTE7CiAgICB9ICAgCiAgICAKICAgIAogICAgZm9yKGludCBpPTE7aTxuO2krKyl7CiAgICAgICAgaWYoYVtpXSUyPT0wKXsKICAgICAgICAgICAgZHBlW2ldWzBdPWRwZVtpLTFdWzBdK2RwZVtpLTFdWzFdOwogICAgICAgICAgICBkcG9baV1bMF09ZHBvW2ktMV1bMF0rZHBvW2ktMV1bMV07CiAgICAgICAgfQogICAgICAgIGVsc2V7CiAgICAgICAgICAgIGRwZVtpXVswXT1kcG9baS0xXVswXStkcG9baS0xXVsxXTsKICAgICAgICAgICAgZHBvW2ldWzBdPWRwZVtpLTFdWzBdK2RwZVtpLTFdWzFdOwogICAgICAgIH0KICAgICAgICBpZihiW2ldJTI9PTApewogICAgICAgICAgICBkcGVbaV1bMV09ZHBlW2ktMV1bMF0rZHBlW2ktMV1bMV07CiAgICAgICAgICAgIGRwb1tpXVsxXT1kcG9baS0xXVswXStkcG9baS0xXVsxXTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgZHBlW2ldWzFdPWRwb1tpLTFdWzBdK2Rwb1tpLTFdWzFdOwogICAgICAgICAgICBkcG9baV1bMV09ZHBlW2ktMV1bMF0rZHBlW2ktMV1bMV07CiAgICAgICAgfSAgICAgICAgCiAgICB9CiAgICAKICAgIHJldHVybiB7ZHBlW24tMV1bMF0rZHBlW24tMV1bMV0sZHBvW24tMV1bMF0rZHBvW24tMV1bMV19OwogICAKfQppbnQgbWFpbigpCnsKICAgIHZlY3RvcjxpbnQ+YT17MiwyfTsKICAgIHZlY3RvcjxpbnQ+Yj17NCwxfTsKICAgIHZlY3RvcjxpbnQ+YW5zPWZ1bihhLGIsMik7CiAgICBmb3IoaW50IGk6YW5zKXsKICAgICAgICBjb3V0PDxpPDwgIiAgIjsKICAgIH1jb3V0PDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=