reservoir-fusion2.c 281 Bytes
if (N >= 1) {
  for (int c1 = 1; c1 <= M; c1 += 1)
    S1(1, c1);
  for (int c0 = 2; c0 <= N; c0 += 1) {
    for (int c1 = 1; c1 <= M; c1 += 1)
      S2(c0 - 1, c1);
    for (int c1 = 1; c1 <= M; c1 += 1)
      S1(c0, c1);
  }
  for (int c1 = 1; c1 <= M; c1 += 1)
    S2(N, c1);
}