package main import ( "fmt" ) var m [][]int func v(t int, p int) int { if 1 <= p && p <= 10 { return m[t][p] }; return 0 } func max3(n1 int, n2 int, n3 int) int { n := n1; if n < n2 { n = n2 }; if n < n3 { n = n3 }; return n } func main() { var n, t, p, i, T int fmt.Scan(&n) var a [][]int = make([][]int, n) for i=0; i<n; i++ { fmt.Scanf("%d %d", &t, &p) a[i] = []int{ t, p } if t > T { T = t } } m = make([][]int, T+1) for t=0; t<=T; t++ { m[t] = make([]int, 11) for p=1; p<=10; p++ { m[t][p] = 0 } } for i=0; i<n; i++ { m[a[i][0]][a[i][1]] = 1 } for t=T-1; 0<=t; t-- { for p=1; p<=10; p++ { m[t][p] += max3(v(t+1, p-1), v(t+1, p), v(t+1, p+1)) } } fmt.Println(m[0][1]) }