#include <bits/stdc++.h>
using namespace std;
bool func(int x) {
  int i = 0;
  if (!(x == 1 || x % 2 == 0))
    return false;
  else {
    while (x % 2 == 0) {
      x /= 2;
      i++;
    }
    if (x == pow(2, i + 1) - 1) return true;
  }
  return false;
}
int main() {
  long long n, i = 0;
  cin >> n;
  bool flag = false;
  while (!flag && n / (i + 1) != 0) {
    if (((float)n / (float)(i + 1)) == floor(((float)n / (float)(i + 1)))) {
      if (func(n / (i + 1))) {
        cout << n / (i + 1);
        flag = true;
      }
    }
    i++;
  }
  if (!flag) {
    cout << 1;
  }
  return 0;
}
