source_code: import java.io.IOException;
  import java.io.UnsupportedEncodingException;
  import java.util.InputMismatchException;
  import java.io.OutputStream;
  import java.io.PrintWriter;
  import java.math.BigInteger;
  import java.io.InputStream;
  
  /**
   * Built using CHelper plug-in
   * Actual solution is at the top
   */
  public class Main {
  	public static void main(String[] args) {
  		InputStream inputStream = System.in;
  		OutputStream outputStream = System.out;
  		InputReader in = new InputReader(inputStream);
  		PrintWriter out = new PrintWriter(outputStream);
  		TaskD solver = new TaskD();
  		solver.solve(1, in, out);
  		out.close();
  	}
  }
  
  class TaskD {
  
    public void solve(int testNumber, InputReader in, PrintWriter out) {
      long l = in.readLong(), r = in.readLong();
      int pow = 62;
      long mask = 1L << pow;
      while (((r | l) & mask) == 0){
        pow--;
        mask = 1L << pow;
      }
      while (true) {
        if (((r ^ l) & mask) == mask || pow < 0) {
          break;
        }
        mask >>= 1;
        l = l & ~(1L << pow);
        r = r & ~(1L << pow);
        pow--;
      }
      pow++;
      out.print((1L << pow) - 1);
    }
  }
  
  class InputReader {
  
    private InputStream stream;
    private byte[] buf = new byte[1024];
    private int curChar;
    private int numChars;
  
    public InputReader(InputStream stream) {
      this.stream = stream;
    }
  
    public int read() {
      if (numChars == -1)
        throw new InputMismatchException();
      if (curChar >= numChars) {
        curChar = 0;
        try {
          numChars = stream.read(buf);
        } catch (IOException e) {
          throw new InputMismatchException();
        }
        if (numChars <= 0)
          return -1;
      }
      return buf[curChar++];
    }
  
    public long readLong() {
      int c = read();
      while (isSpaceChar(c))
        c = read();
      int sgn = 1;
      if (c == '-') {
        sgn = -1;
        c = read();
      }
      long res = 0;
      do {
        if (c < '0' || c > '9')
          throw new InputMismatchException();
        res *= 10;
        res += c - '0';
        c = read();
      } while (!isSpaceChar(c));
      return res * sgn;
    }
  
    public static boolean isSpaceChar(int c) {
      return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
    }
  
    }
  
  