#include <bits/stdc++.h>
using namespace std;
bool isrange(int second, int first, int n, int m) {
  if (0 <= second && second < n && 0 <= first && first < m) return true;
  return false;
}
int dy[4] = {1, 0, -1, 0}, dx[4] = {0, 1, 0, -1},
    ddy[8] = {1, 0, -1, 0, 1, 1, -1, -1}, ddx[8] = {0, 1, 0, -1, 1, -1, 1, -1};
int MAX = 1000000;
void solve(int tc) {
  int k;
  scanf("%d", &k);
  vector<int> v;
  while (true) {
    for (int e = 2; e <= 2000; e++) {
      if ((e - 1) * MAX >= k && (k + MAX) % e == 0) {
        int tot = MAX - (k + MAX) / e;
        if ((e - 1) >= tot) continue;
        for (int p = 0; p < e - 2; p++) v.push_back(-1);
        v.push_back(-(tot - (e - 2)));
        v.push_back(MAX);
        printf("%d\n", (int)v.size());
        for (int e = 0; e < (int)v.size(); e++) printf("%d ", v[e]);
        return;
      }
    }
    MAX--;
  }
}
int main(void) {
  int tc = 1;
  for (int test_number = 1; test_number <= tc; test_number++) {
    solve(test_number);
  }
  return 0;
}
