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 Rust (1.15.1) (judge verdict: Runtime Error)

use std::io::*;
use std::str::*;

// const MOD: i32 = 1000000007;

fn read<T: FromStr>() -> Option<T> {
    let stdin = stdin();
    let s = stdin
        .bytes()
        .map(|c| c.unwrap() as char)
        .take_while(|c| !c.is_whitespace())
        .collect::<String>();
    s.parse::<T>().ok()
}

fn main() {
    let a: i32 = read().unwrap();
    let b: i32 = read().unwrap();
    let k: i32 = read().unwrap();


    // 0 initialize
    let mut ar: [usize; 101] = [0; 101];

    for i in a..std::cmp::min(a+k-1, b)+1 {
        ar[i as usize] = 1;
    }

    for i in (std::cmp::max(b-k, a)+1)..b+1 {
        ar[i as usize] = 1;
    }

    for i in 0..100 {
        if ar[i] == 1 {
            println!("{}", i);
        }
    }
}