N = gets.chomp.to_i
A = []
N.times do |i|
  A << gets.chomp.to_i
end

q = []
A.each do |a|
  if q.empty?
    q << a
  elsif q[-1] < a
    q[-1] = a
  else
    i = q.bsearch_index { |v| v >= a }
    if i.zero?
      q.insert(0, a)
    else
      q[i-1] = a
    end
  end
end
puts q.size
