#T028. 文件夹

文件夹

Description

小田 在 "F.R.A.U.D." 公司的分析部门工作了 nn 天。现在他的任务是制作一系列关于公司过去 nn 天业绩的报告。我们知道,日报告的主要信息是利润 aia_i ,即公司在第 ii 天的赚的钱。如果 aia_i 为负值,则说明公司在第 ii 天亏了大钱。

小田 应将日报表分类到文件夹中。每个文件夹都应包含公司连续几天的业绩数据。当然, nn 天中每一天的信息都应准确地放在一个文件夹中。因此,小田 将头几天的信息放在第一个文件夹中。接下来几天的信息放到第二个文件夹,以此类推。

众所周知,老板每天会阅读一个日报表文件夹。如果一个文件夹中有三份或更多的报告是关于公司遭受损失的那几天的 (即 ai<0ai < 0) ,他就会发脾气,怒火中烧,那作为助理的 小田 就要遭老罪喽。

因此,小田 希望在准备文件夹时,不要让任何一个文件夹包含三个或三个以上亏损日的信息,而且文件夹的数量要最少。

请编写一个程序,打印出 能不让老板怒火中烧 并且 数量尽可能少 的文件分配方案。

Input

第一行包含整数 n(1n100)n ( 1 ≤ n ≤ 100 )nn 是天数。 第二行包含一串整数 a1,a2,...,an(ai100)a_1, a_2, ..., a_n ( |a_i| ≤ 100 ),其中 aia_i 表示公司在第 ii 天的利润。公司可能没有负数 aia_i 的天数。

Output

第一行输出一个整数 kk,表示所需的最少文件夹数。

第二行打印一串整数 b1b2......bjb_1 、 b_2 、......、 b_j ,其中 bjb_j 是第 jj 个文件夹中的日报表数量。

如果有多种方法将报告放置到到 kk 个文件夹,则打印其中任何一种。

11
1 2 3 -4 -5 -6 5 -5 -6 -7 6
5
0 -1 100 -1 0
3
5 3 3
1
5

Note

下面是将第一个示例中的报告排序为三个文件夹的方法:

1 2 3 -4 -5 | -6 5 -5 | -6 -7 6

在第二个示例中,您可以将所有五份报告放在一个文件夹中。