#include <bits/stdc++.h>
using namespace std;
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) {
  std::cerr << name << " : " << arg1 << '\n';
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
  const char* comma = strchr(names + 1, ',');
  std::cerr.write(names, comma - names) << " : " << arg1 << " | ";
  __f(comma + 1, args...);
}
void solve() {
  map<int, int> free, eng;
  std::vector<pair<int, int> > ans;
  int n, m, k, ptr = 1;
  cin >> n >> m >> k;
  eng[1] = k;
  ans.push_back(make_pair(1, k));
  ;
  for (auto& a : eng) {
    int begi = a.first, till = a.first + n, need = a.second;
    eng[begi] = 0;
    free[begi + n + m] += need;
    if (begi > n * 10) break;
    if (!need) continue;
    if (need == k) {
      for (auto& b : free) {
        if (b.second == 0) continue;
        if (b.first > till - 1) break;
        b.second--;
        need--;
        eng[b.first]++;
        break;
      }
      if (need == k) {
        need--;
        ans.push_back(make_pair(till - 1, 1));
        ;
        eng[till - 1]++;
      }
    }
    auto it = free.begin();
    while ((*it).first <= till) {
      if (need == 0) break;
      int mi = min(need, (*it).second);
      need -= mi;
      eng[(*it).first] += mi;
      free[(*it).first] -= mi;
      it++;
    }
    if (need) {
      ans.push_back(make_pair(till, need));
      ;
      eng[till] += need;
    }
  }
  int q = 0;
  sort(ans.begin(), ans.end());
  for (auto& b : ans) q += b.second;
  cout << q << '\n';
  for (auto& b : ans) {
    for (int i = 0; i < b.second; i++) cout << b.first << " ";
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
