package main import ( "bufio" "bytes" "fmt" "os" "sort" ) func main() { n := readi() a := readis(n) sort.Ints(a) fmt.Fprintln(writer, solve(a)) writer.Flush() } func solve(a []int) int { res := 0 for i := range a { count := 0 for j := i; j < len(a); j++ { if a[j]-a[i] > 1 { break } count++ } res = max(res, count) } return res } var ( reader = bufio.NewReaderSize(os.Stdin, 1<<13) writer = bufio.NewWriterSize(os.Stdout, 1<<13) ) func abs(a int) int { if a < 0 { return -a } return a } func abs64(a int64) int64 { if a < 0 { return -a } return a } func max(a, b int) int { if a > b { return a } return b } func max64(a, b int64) int64 { if a > b { return a } return b } func min(a, b int) int { if a < b { return a } return b } func min64(a, b int64) int64 { if a < b { return a } return b } func readi() int { return int(readi64()) } func read2i() (int, int) { return readi(), readi() } func readis(n int) []int { res := make([]int, n) for i := range res { res[i] = readi() } return res } func readi64() int64 { b, err := reader.ReadByte() for !isValid(b, err) { b, err = reader.ReadByte() } sign, res := int64(1), int64(0) if b == '-' { sign *= -1 b, err = reader.ReadByte() } for isValid(b, err) { res = res*10 + int64(b-'0') b, err = reader.ReadByte() } return res * sign } func readline() string { res := new(bytes.Buffer) for { line, isPrefix, err := reader.ReadLine() if err != nil { panic(err) } res.Write(line) if !isPrefix { break } } return res.String() } func isValid(b byte, err error) bool { return err == nil && (('0' <= b && b <= '9') || b == '-') }