n = gets.to_i
a = n.times.map {gets.to_i}

x = [1 << 31]

a.each do |b|
    i = x.bsearch_index {|e| e >= b}
    if i.nil? 
        x[-1] = b
    elsif i == 0
        x.unshift(b)
    else
        x[i-1] = b
    end
end

puts x.size - 1