#include <bits/stdc++.h>
using namespace std;
bool check(int u) {
  int len = floor(log(u) / log(2));
  if ((len + 1) % 2 == 0) return false;
  int m = (len + 1 >> 1);
  for (int i = 0; i < m; i++)
    if (u & (1 << i)) return false;
  for (int i = m; i < len + 1; i++)
    if (!(u & (1 << i))) return false;
  return true;
}
int main() {
  ios::sync_with_stdio(false);
  cout.setf(ios::fixed);
  cout.precision(20);
  int n;
  cin >> n;
  int ans = 1;
  for (long long i = 1; i * i < n + 1; i++)
    if (n % i == 0) {
      long long inv = n / i;
      if (check(i)) ans = (ans > i ? ans : i);
      if (check(inv)) ans = (ans > inv ? ans : inv);
    }
  cout << ans << '\n';
  return 0;
}
