#553. 最长上升序列(LIS)

最长上升序列(LIS)

Background

Special for beginners, ^_^

Description

设有由 nn 个不相同的整数组成的数列,记为:b1,b2,,bnb_1,b_2,\dots,b_nbibj(ij)b_i\neq b_j (i\neq j),若存在 i1<i2<i3<<iei_1<i_2<i_3<\dots < i_e 且有 bi1<bi2<<bieb_{i_1}<b_{i_2}<\dots <b_{i_e} 则称为长度为 ee 的上升序列。

当原数列出之后,求出最长的上升序列。

例如 13,7,9,16,38,24,37,18,44,19,21,22,63,15。

例中 13,16,18,19,21,22,63 就是一个长度为 7 的上升序列,同时也有 7,9,16,18,19,21,22,63 长度为 8 的上升序列。

Format

Input

输入一行若干个正整数,个数小于 100,取值小于 50000。

Output

输出两行。

第一行输出一个整数 e。

第二行输出 e 个整数,为最长上升序列。

Samples

300 250 275 252 200 138 245
2
250 275 

Limitation

1s, 1024KiB for each test case.