#include<bits/stdc++.h>
using namespace std;
long long xxx(string x){
int a[10001];
for(int j=0;j<x.size();j++){
a[j]=x[j]-'0';
}
long long l=0;
long long i=x.size();
for(int j=0;j<x.size();j++){
l+=pow(2,i-j-1)*a[j];
}
return l;
}
int main(){
int n;
cin>>n;
string a;
int i=0;
int b[10001];
for(int j=1;;j++){
for(int k=0;k<j;k++){
a=a+"1";
}
for(int k=0;k<j-1;k++){
a=a+"0";
}
b[j]=xxx(a);
if(b[j]>10000000){
i=j;
break;
}
a="";
}
int x=0;
for(int j=1;j<=i;j++){
if(b[j]<=n&&n%b[j]==0){ //这里忘记加了
x=b[j];
}
else if(b[j]>n) break;
}
cout<<x<<endl;
return 0;
}