#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b, long long &first, long long &second) {
  if (a == 0) {
    first = 0, second = 1;
    return b;
  }
  long long x1, y1;
  long long d = gcd(b % a, a, x1, y1);
  first = y1 - (b / a) * x1;
  second = x1;
  return d;
}
bool find_any_solution(long long a, long long b, long long c, long long &x0,
                       long long &y0, long long &g) {
  g = gcd(abs(a), abs(b), x0, y0);
  if (c % g != 0) return false;
  x0 *= c / g;
  y0 *= c / g;
  if (a < 0) x0 *= -1;
  if (b < 0) y0 *= -1;
  return true;
}
long long k, ans[2002];
void solve() {
  cin >> k;
  for (long long n = 1; n < 2001; n++) {
    for (long long m = 1; m < 2001 - n; m++) {
      long long a = m, b = -(n + m);
      long long s, first, g;
      if (find_any_solution(a, b, k, s, first, g)) {
        long long w = min(s * g / (n + m), first * g / a);
        while (s + w * b / g <= 0) w--;
        while (first - w * a / g <= 0) w--;
        s += w * b / g;
        first -= w * a / g;
        assert(s >= 0);
        assert(first >= 0);
        if (s <= 1000000LL * n and first <= 1000000LL * m) {
          for (long long i = m - 1; i >= 0; i--) {
            ans[i] = -min(first, 1000000LL);
            first -= min(first, 1000000LL);
          }
          for (long long i = m; i < n + m; i++) {
            ans[i] = min(s, 1000000LL);
            s -= min(s, 1000000LL);
          }
          cout << n + m << '\n';
          for (long long i = 0; i < n + m; i++) {
            cout << ans[i] << " ";
          }
          cout << '\n';
          return;
        }
      }
    }
  }
  cout << -1 << '\n';
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
