import random
import heapq


heap = []
subseqs = {}
prevElem = []
bestL = 0


def merge(x, p, d):
  length1 = subseqs[d][1][p][0]
  length2 = subseqs[d][0][x][0]
  length = length1 + 1 + length2
  begin = subseqs[d][1][p][1]
  end = subseqs[d][0][x][1]
  del subseqs[d][0][begin]
  del subseqs[d][1][end]
  del subseqs[d][0][x]
  del subseqs[d][1][p]
  subseqs[d][0][begin] = (length, end)
  subseqs[d][1][end] = (length, begin)


def growLeft(x, p, d):
  length = 1 + subseqs[d][0][x][0]
  end = subseqs[d][0][x][1]
  del subseqs[d][1][end]
  del subseqs[d][0][x]
  subseqs[d][0][p] = (length, end)
  subseqs[d][1][end] = (length, p)


def growRight(x, p, d):
  length = subseqs[d][1][p][0] + 1
  begin = subseqs[d][1][p][1]
  del subseqs[d][0][begin]
  del subseqs[d][1][p]
  subseqs[d][0][begin] = (length, x)
  subseqs[d][1][x] = (length, begin)


def insert(x, p, d):
  subseqs[d][0][p] = (1, x)
  subseqs[d][1][x] = (1, p)


def update(x, p, d):
  if d not in subseqs:
    heapq.heappush(heap, d)
    subseqs[d] = ({},{})

  if x in subseqs[d][0]:
    if p in subseqs[d][1]:
      merge(x, p, d)
    else:
      growLeft(x, p, d)
  else:
    if p in subseqs[d][1]:
      growRight(x, p, d)
    else:
      insert(x, p, d)


def init(src):
  prevElem.insert(0, -1)
  for i in range(1, len(src)):
    prevElem.insert(i, i-1)
    d = src[i] - src[i-1]

    update(i, i-1, d)


def chooseTheBest(d):
  global bestL
  l = max(list(zip(*subseqs[d][0].values()))[0])
  if l > bestL:
    bestL = l


def updateIndexes(src, d):
  for end in subseqs[d][1].keys():
    l = subseqs[d][1][end][0]
    i = end

    for n in range(l):
      link = prevElem[i]

      if link != 0:
        prevElem[i] -= 1
        d2 = src[i] - src[prevElem[i]]
        update(i, prevElem[i], d2)
        i = link


def findLESS(src):
  global bestL
  init(src)

  while len(heap) > 0:
    #print(subseqs)
    d = heapq.heappop(heap)
    chooseTheBest(d)
    updateIndexes(src, d)
    del subseqs[d]

  return bestL


a = [random.randint(0,20000) for r in range(20000)] 
s = list(set(a))

print(findLESS(s) + 1)
