#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <stack>
#include <map>
#include <cmath>
#include <vector>
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int N=2000+10,M=1e6+10,mod=998244353;
double dp[N][N],v[N][N];//dp是概率 v是期望 期望减概率等于数量减1的概率;
//是前i个数有j个》的概率;
int main()
{
int n;
scanf("%d",&n);
dp[1][0]=dp[1][1]=v[1][0]=v[1][1]=0.5;
for(int i=2;i<=n;i++)
for(int j=0;j<=n;j++)
{
dp[i][j]=0.5*dp[i-1][j+1];//选择《 所以前i个数要多一个》;
if(j)dp[i][j]+=0.5*dp[i-1][j-1];// 选择》
if(!j)dp[i][j]+=0.5*dp[i-1][j];//选择《 当j是0的时候还包括这种情况;
v[i][j]=0.5*(v[i-1][j+1]-dp[i-1][j+1]);//选择《 因为消去了一个 所以减去概率;
if(j)v[i][j]+=0.5*(v[i-1][j-1]+dp[i-1][j-1]);
if(!j)v[i][j]+=0.5*(v[i-1][j]+dp[i-1][j]);
}
double ans=0;
for(int i=0;i<=n;i++)
ans+=v[n][i];
printf("%.3f",ans);
return 0;
}
void add_(int &a,ll b){a=((a+b)%mod+mod)%mod;return;}