Squirrel Liss is interested in sequences. She also has preferences of integers. She thinks *n* integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> are good.

Now she is interested in good sequences. A sequence *x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*k*</sub> is called good if it satisfies the following three conditions:
 -  The sequence is strictly increasing, i.e. *x*<sub class="lower-index">*i*</sub> &lt; *x*<sub class="lower-index">*i* + 1</sub> for each *i* (1 ≤ *i* ≤ *k* - 1). -  No two adjacent elements are coprime, i.e. *gcd*(*x*<sub class="lower-index">*i*</sub>, *x*<sub class="lower-index">*i* + 1</sub>) &gt; 1 for each *i* (1 ≤ *i* ≤ *k* - 1) (where *gcd*(*p*, *q*) denotes the greatest common divisor of the integers *p* and *q*). -  All elements of the sequence are good integers. 
Find the length of the longest good sequence.
The input consists of two lines. The first line contains a single integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>) — the number of good integers. The second line contains a single-space separated list of good integers *a*<sub class="lower-index">1</sub>, *a*<sub class="lower-index">2</sub>, ..., *a*<sub class="lower-index">*n*</sub> in strictly increasing order (1 ≤ *a*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">5</sup>; *a*<sub class="lower-index">*i*</sub> &lt; *a*<sub class="lower-index">*i* + 1</sub>).

import math 
import sys
from decimal import Decimal
def factors(n):

  ans=[] 

  if n==1:
    return []
  for i in range(1,int(math.sqrt(n))+1):
    a=i 
    b=n/i 
    if b==int(b):
      ans.append(a)
      ans.append(b)
  ans.remove(1)
  return ans
def main(arr):



 

  dp={} 

  for e in arr:

    f=factors(e)
    
    add=1
    for val in f:
      if val in dp:
        add=max(add,1+dp[val])
    for val in f:
      if val in dp:
        dp[val]=max(dp[val],add) 
      else:
        dp[val]=add
  
  ans=0 
  for e in dp:
    ans=max(dp[e],ans)
  return ans
      

n=int(input())
arr=list(map(int,input().split()))
print(main(arr))


  









    






        


      
      