E. Wrong Answer
time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

Consider the following problem: given an array aa containing nn integers (indexed from 00 to n−1n−1), find max0≤l≤r≤n−1∑l≤i≤r(r−l+1)⋅aimax0≤l≤r≤n−1∑l≤i≤r(r−l+1)⋅ai. In this problem, 1≤n≤20001≤n≤2000 and |ai|≤106|ai|≤106.

In an attempt to solve the problem described, Alice quickly came up with a blazing-fast greedy algorithm and coded it. Her implementation in pseudocode is as follows:

function find_answer(n, a)
# Assumes n is an integer between 1 and 2000, inclusive
# Assumes a is a list containing n integers: a[0], a[1], ..., a[n-1]
res = 0
cur = 0
k = -1
for i = 0 to i = n-1
cur = cur + a[i]
if cur < 0
cur = 0
k = i
res = max(res, (i-k)*cur)
return res

Also, as you can see, Alice's idea is not entirely correct. For example, suppose n=4n=4 and a=[6,−8,7,−42]a=[6,−8,7,−42]. Then, find_answer(n, a) would return 77, but the correct answer is 3⋅(6−8+7)=153⋅(6−8+7)=15.

You told Alice that her solution is incorrect, but she did not believe what you said.

Given an integer kk, you are to find any sequence aa of nn integers such that the correct answer and the answer produced by Alice's algorithm differ by exactly kk. Note that although the choice of nn and the content of the sequence is yours, you must still follow the constraints earlier given: that 1≤n≤20001≤n≤2000 and that the absolute value of each element does not exceed 106106. If there is no such sequence, determine so.

Input

The first and only line contains one integer kk (1≤k≤1091≤k≤109).

Output

If there is no sought sequence, print "-1".

Otherwise, in the first line, print one integer nn (1≤n≤20001≤n≤2000), denoting the number of elements in the sequence.

Then, in the second line, print nn space-separated integers: a0,a1,…,an−1a0,a1,…,an−1 (|ai|≤106|ai|≤106).

Examples
input

Copy
8
output

Copy
4
6 -8 7 -42
input

Copy
612
output

Copy
7
30 -12 -99 123 -2 245 -300
Note

The first sample corresponds to the example given in the problem statement.

In the second sample, one answer is n=7n=7 with a=[30,−12,−99,123,−2,245,−300]a=[30,−12,−99,123,−2,245,−300], in which case find_answer(n, a)returns 10981098, while the correct answer is 17101710.

最新文章

  1. Win7下的内置FTP组件的设置详解
  2. String之-如何取得精确byte长度字符串
  3. &lt;script&gt;元素的位置
  4. 《BI项目笔记》创建时间维度(1)
  5. Spring POST
  6. (转)Sublime Text 2 2.0.2 序列号
  7. MUI 个推
  8. 数组和字典 swift
  9. 2013年优秀jQuery插件
  10. json_encode如何防止汉字转义成unicode
  11. Memcached安装,操作,用C#操作
  12. windows下修改apache并发数
  13. [Apio2012]dispatching
  14. ORA-12541:tns:no listener
  15. [转] babel 教程
  16. 构建一个Gods Eye Android应用程序:第1部分 – 收集已安装的Android应用程序
  17. Linux内核分析第五周总结
  18. .NET学习从入门到精通100+源代码(申明:来源于网络)
  19. 并发编程---IO模型
  20. 安装模块时报错“error: Microsoft Visual C++ 14.0 is required…”

热门文章

  1. 【转】js中15个常用的正则表达式+正则集合
  2. hdu1584(状态压缩DP)
  3. zoom和transform scale
  4. Pascal学生管理
  5. CodeForces 730G Car Repair Shop (暴力)
  6. Linux 常用命令十五 用户和组操作命令
  7. 洛谷 P4012 深海机器人问题 【最大费用最大流】
  8. Workflow 规则大全 最新版
  9. CF1140G Double Tree
  10. CF449D Jzzhu and Numbers