import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 * Built using CHelper plug-in Actual solution is at the top
 *
 * @author Silviase
 */
public class Main {

  public static void main(String[] args) {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    Scanner in = new Scanner(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
    DCaracalVsMonster solver = new DCaracalVsMonster();
    solver.solve(1, in, out);
    out.close();
  }

  static class DCaracalVsMonster {

    public void solve(int testNumber, Scanner in, PrintWriter out) {
      long h = in.nextLong();
      out.println(fun(h));
    }

    long fun(long h) {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    }

  }
}
 import java.io.OutputStream; OutputStream java.io import java.io.IOException; IOException java.io import java.io.InputStream; InputStream java.io import java.io.PrintWriter; PrintWriter java.io import java.util.Scanner; Scanner java.util public class Main {

  public static void main(String[] args) {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    Scanner in = new Scanner(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
    DCaracalVsMonster solver = new DCaracalVsMonster();
    solver.solve(1, in, out);
    out.close();
  }

  static class DCaracalVsMonster {

    public void solve(int testNumber, Scanner in, PrintWriter out) {
      long h = in.nextLong();
      out.println(fun(h));
    }

    long fun(long h) {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    }

  }
} Main public static void main(String[] args) {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    Scanner in = new Scanner(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
    DCaracalVsMonster solver = new DCaracalVsMonster();
    solver.solve(1, in, out);
    out.close();
  } main {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    Scanner in = new Scanner(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
    DCaracalVsMonster solver = new DCaracalVsMonster();
    solver.solve(1, in, out);
    out.close();
  } InputStream inputStream = System.in; inputStream System.in System System.in OutputStream outputStream = System.out; outputStream System.out System System.out Scanner in = new Scanner(inputStream); in new Scanner(inputStream) PrintWriter out = new PrintWriter(outputStream); out new PrintWriter(outputStream) DCaracalVsMonster solver = new DCaracalVsMonster(); solver new DCaracalVsMonster() solver.solve(1, in, out) solver.solve solver 1 in out out.close() out.close out String[] args args static class DCaracalVsMonster {

    public void solve(int testNumber, Scanner in, PrintWriter out) {
      long h = in.nextLong();
      out.println(fun(h));
    }

    long fun(long h) {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    }

  } DCaracalVsMonster public void solve(int testNumber, Scanner in, PrintWriter out) {
      long h = in.nextLong();
      out.println(fun(h));
    } solve {
      long h = in.nextLong();
      out.println(fun(h));
    } long h = in.nextLong(); h in.nextLong() in.nextLong in out.println(fun(h)) out.println out fun(h) fun h int testNumber testNumber Scanner in in PrintWriter out out long fun(long h) {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    } fun {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    } return h == 1 ? 1 : fun(h / 2) * 2 + 1; h == 1 ? 1 : fun(h / 2) * 2 + 1 h == 1 h 1 1 fun(h / 2) * 2 + 1 fun(h / 2) * 2 fun(h / 2) fun h / 2 h 2 2 1 long h h public class Main {

  public static void main(String[] args) {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    Scanner in = new Scanner(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
    DCaracalVsMonster solver = new DCaracalVsMonster();
    solver.solve(1, in, out);
    out.close();
  }

  static class DCaracalVsMonster {

    public void solve(int testNumber, Scanner in, PrintWriter out) {
      long h = in.nextLong();
      out.println(fun(h));
    }

    long fun(long h) {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    }

  }
} public class Main {

  public static void main(String[] args) {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    Scanner in = new Scanner(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
    DCaracalVsMonster solver = new DCaracalVsMonster();
    solver.solve(1, in, out);
    out.close();
  }

  static class DCaracalVsMonster {

    public void solve(int testNumber, Scanner in, PrintWriter out) {
      long h = in.nextLong();
      out.println(fun(h));
    }

    long fun(long h) {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    }

  }
} Main
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.Scanner;

/**
 * Built using CHelper plug-in Actual solution is at the top
 *
 * @author Silviase
 */
public class Main {

  public static void main(String[] args) {
    InputStream inputStream = System.in;
    OutputStream outputStream = System.out;
    Scanner in = new Scanner(inputStream);
    PrintWriter out = new PrintWriter(outputStream);
    DCaracalVsMonster solver = new DCaracalVsMonster();
    solver.solve(1, in, out);
    out.close();
  }

  static class DCaracalVsMonster {

    public void solve(int testNumber, Scanner in, PrintWriter out) {
      long h = in.nextLong();
      out.println(fun(h));
    }

    long fun(long h) {
      return h == 1 ? 1 : fun(h / 2) * 2 + 1;
    }

  }
}

