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数组的字符串形式即可
}
}