package main import ( "bufio" "fmt" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) var rdr = bufio.NewReaderSize(os.Stdin, 1000000) func main() { sc.Split(bufio.ScanWords) a := nextInt() p, m := 1, make(map[int]bool) for i := 1; i < 31; i++ { m[p] = true p *= 2 } fs := []int{3, 5, 17, 257, 65537} for _, f := range fs { next := make(map[int]bool) for k, v := range m { next[k] = v next[k*f] = v } m = next } delete(m, 1) delete(m, 2) c := 0 for k := range m { if k <= a { c++ } } fmt.Println(c) } func nextLine() string { sc.Scan() return sc.Text() } func nextInt() int { i, _ := strconv.Atoi(nextLine()) return i }