import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();        
        System.out.println(decimalToBinary(num));
    }

    public static String decimalToBinary(int decimal) throws IllegalArgumentException {
        if (decimal < 0) {
            throw new IllegalArgumentException("形参decimal不能为负数");
        } else if (decimal == 0) {
            return "0";
        }

        long remaining = decimal; //剩余变量,辅助完成计算k的二进制编码
        //计算decimal的最高位数
        int power = (int) (Math.log10(decimal) / Math.log10(2));
        byte[] buf = new byte[power + 1]; //存储转化后的二进制数值
        int binary = 1 << power; //计算最高项的值
        int index = 0; //buf数组的存储索引
        while (binary > 0) { //binary为0表示第0项已追加完毕
            if (remaining >= binary) {
                buf[index++] = '1'; //将索引位置的元素值置为1
                remaining -= binary; //继续转换剩余的十进制数
            } else {
                buf[index++] = '0'; //索引值后移一位即可
            }
            binary >>>= 1; //计算次位的值
        }

        return new String(buf); //返回buf数组的字符串形式即可
    }
}