n = gets.to_i
a = []
n.times { a << gets.to_i }
colors = []
a.each { |a|
  idx = colors.bsearch_index { |b| b < a } # それより小さいものがあるか
  if idx.nil? # なければ色を追加
    colors << a
  else
    colors[idx] = a # その場所をこの数字で置き換える（その色の一番大きい数字だけ残す）。
  end
}
p colors.size
