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

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    
    long long n;
    unordered_set <long long> se;
    cin >> n;

    int x = sqrt(n);
    for (int i = 2;i < x+2;i++)
        for (int j = 2;j < n && pow(i,j) <= n;j++)
            se.insert(pow(i,j));

    // for (long long l : se)
    //     cout << l << endl;

    cout << n - se.size() << endl;

    return 0;
}
//Codeforcesで128bit整数を使いたいとき
//→__int128_tを使う&GNU C++17 (64)で提出する

//インクルードなど
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

//イテレーション
#define REP(i, n) for (ll i = 0; i < ll(n); i++)
#define REPD(i, n) for (ll i = n - 1; i >= 0; i--)
#define FOR(i, a, b) for (ll i = a; i <= ll(b); i++)
#define FORD(i, a, b) for (ll i = a; i >= ll(b); i--)
#define FORA(i, I) for (const auto &i : I)
//x:コンテナ
#define ALL(x) x.begin(), x.end()
#define SIZE(x) ll(x.size())
//定数
#define INF32 2147483647          //2.147483647×10^{9}:32bit整数のinf
#define INF64 9223372036854775807 //9.223372036854775807×10^{18}:64bit整数のinf
#define MOD 1000000007            //問題による
//略記
#define F first
#define S second
//出力(空白区切りで昇順に)
#define coutALL(x)                                \
    for (auto i = x.begin(); i != --x.end(); i++) \
        cout << *i << " ";                        \
    cout << *--x.end() << endl;

//aをbで割る時の繰上げ,繰り下げ
ll myceil(ll a, ll b) { return (a + (b - 1)) / b; }
ll myfloor(ll a, ll b) { return a / b; }

ll A[17][65536];
int N;

signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin >> N;

    int t = static_cast<int>(pow(2,N));
    REP(i,t){
        cin >> A[N][i];
    }
    for(int i= N;i>=1;i--){
        for(int j=1,c=0;j<t;j+=2){
            A[i-1][c++] = max(A[i][j-1],A[i][j]);
        }
        t/=2;
    }

    ll n1=min(A[1][0],A[1][1]);

    int ans = 0;

    t = static_cast<int>(pow(2,N));
    REP(i,t){
        if(A[N][i]==n1){
            ans = i+1;
            break;
        }
    }

    cout << ans << endl;
}