n = gets.to_i
s = n.times.map { gets.to_i }
list = [-1]
s.each{ |a|
  if list[-1] < a
    list << a
  else
    i = (1...list.size).bsearch{ |x| list[x] >= a } - 1
    list[i + 1] = a
  end
}
puts list.size - 1