Problem:
Score : 200 points

Problem Statement

Print all the integers that satisfies the following in ascending order:

Among the integers between A and B (inclusive), it is either within the K smallest integers or within the K largest integers.

Constraints

1 \leq A \leq B \leq 10^9

1 \leq K \leq 100

All values in input are integers.

Input

Input is given from Standard Input in the following format:

A B K

Output

Print all the integers that satisfies the condition above in ascending order.

Sample Input 1

3 8 2

Sample Output 1

3
4
7
8

3 is the first smallest integer among the integers between 3 and 8.

4 is the second smallest integer among the integers between 3 and 8.

7 is the second largest integer among the integers between 3 and 8.

8 is the first largest integer among the integers between 3 and 8.

Sample Input 2

4 8 3

Sample Output 2

4
5
6
7
8

Sample Input 3

2 9 100

Sample Output 3

2
3
4
5
6
7
8
9

Solution in C# (Mono 4.6.2.0) (judge verdict: Accepted)

using System;
using System.Linq;
using System.Collections.Generic;
public class SmallAndLargeIntegers {
  public static void Main() {
    int[] ABK = ReadIntArray();
    if (ABK[2] > ABK[1] - ABK[0] + 1)
      ABK[2] = ABK[1] - ABK[0] + 1;
    List<int> nums = new List<int>(200);
    for (int i = 0; i < ABK[2]; i++) {
      nums.Add(ABK[0] + i);
      nums.Add(ABK[1] - i);
    }
    foreach (var i in nums.Distinct().OrderBy(i => i))
      Console.WriteLine(i);
  }

  private static int ReadInt() { return int.Parse(Console.ReadLine()); }
  private static double ReadDouble() { return double.Parse(Console.ReadLine()); }
  private static long ReadLong() { return long.Parse(Console.ReadLine()); }
  private static char ReadChar() { return Console.ReadLine()[0]; }
  private static string[] ReadStringArray() { return Console.ReadLine().Split(' '); }
  private static int[] ReadIntArray() { return Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); }
  private static double[] ReadDoubleArray() { return Console.ReadLine().Split(' ').Select(double.Parse).ToArray(); }
  private static long[] ReadLongArray() { return Console.ReadLine().Split(' ').Select(long.Parse).ToArray(); }
  private static char[] ReadCharArray() { return Console.ReadLine().ToArray(); }
  private static void WriteArraySingleLine(Object[] array) { Console.WriteLine(string.Join(" ", array)); }
  private static void WriteArrayMultiLine(Object[] array) { Console.WriteLine(string.Join(Environment.NewLine, array)); }
  private static void WriteYesNo(bool b) { Console.WriteLine((b) ? "Yes" : "No"); }
}