#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int INF = 1e5 + 10;
const int MOD = 1e9 + 7;
int main()
{
int n;
cin>>n;
if(n & 1)
{
cout<<0<<endl;
}
else
{
int num = n / 2;
int ans = pow(2 , num);
cout<<ans<<endl;
}
return 0;
}
//BFS
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int INF = 2e3 + 10;
const int MOD = 1e9 + 7;
int n,m,k,ans = 0;
bool vis[INF][INF];
typedef struct{
int xi;
int yi;
}SE;
queue<SE>q;
int main()
{
cin>>n>>m;
cin>>k;
memset(vis,0,sizeof(vis));
SE s1;
for(int i = 1;i <= k;i ++)
{
int xi,yi;
cin>>xi>>yi;
s1.xi = xi;
s1.yi = yi;
q.push(s1);
vis[xi][yi] = 1;
ans++;
}
if(m * n == k)
{
cout<<s1.xi<<" "<<s1.yi<<endl;
}
else
// cout<<ans<<endl;
while(!q.empty())
{
SE s1 = q.front();
q.pop();
// cout<<s1.xi<<" "<<s1.yi<<endl;
if(s1.xi - 1 >= 1 && !vis[s1.xi - 1][s1.yi])
{
SE s2;
s2.xi = s1.xi - 1;
s2.yi = s1.yi;
q.push(s2);
vis[s2.xi][s2.yi] = 1;
ans ++;
if(ans == n * m)
{
// cout<<ans<<endl;
cout<<s2.xi<<" "<<s2.yi<<endl;
break;
}
}//上
if(s1.yi - 1 >= 1&&!vis[s1.xi][s1.yi - 1])
{
SE s2;
s2.xi = s1.xi;
s2.yi = s1.yi - 1;
q.push(s2);
vis[s2.xi][s2.yi] = 1;
ans ++;
if(ans == n * m)
{
// cout<<ans<<endl;
cout<<s2.xi<<" "<<s2.yi<<endl;
break;
}
}//左
if(s1.xi + 1 <= n && !vis[s1.xi + 1][s1.yi])
{
SE s2;
s2.xi = s1.xi + 1;
s2.yi = s1.yi;
q.push(s2);
vis[s2.xi][s2.yi] = 1;
ans ++;
if(ans == n * m)
{
// cout<<ans<<endl;
cout<<s2.xi<<" "<<s2.yi<<endl;
break;
}
}//下
if(s1.yi + 1 <= m&&!vis[s1.xi][s1.yi + 1])
{
SE s2;
s2.xi = s1.xi;
s2.yi = s1.yi + 1;
q.push(s2);
vis[s2.xi][s2.yi] = 1;
ans ++;
if(ans == n * m)
{
// cout<<ans<<endl;
cout<<s2.xi<<" "<<s2.yi<<endl;
break;
}
}//右
}
return 0;
}
//直接二分
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int INF = 2e3 + 10;
const int MOD = 1e9 + 7;
const double res = 1e-8;
double a[30],b[30];
int n,v;
bool check(double x)
{
double sum = 0;
for(int i = 1;i <= n;i ++)
{
sum += a[i] * x;
if(a[i] * x > b[i])
{
return false;
}
}
if(sum > v)return false;
return true;
}
int main()
{
cin>>n>>v;
for(int i = 1;i <= n;i ++)
{
cin>>a[i];
}
for(int i = 1;i <= n;i ++)
{
cin>>b[i];
}
double l = 0, r = v * 1.0 / n;
while(r - l > res)
{
double mid = (l + r) / 2;
if(!check(mid))
{
r = mid;
}
else l = mid;
}
double ans = 0;
for(int i = 1;i <=n;i ++)
{
ans += r * a[i];
}
printf("%lf\n",ans);
return 0;
}