Algorithms and Data Structures

• Status
• 1
Implementation
• 2
Bitwise operations
• 3
Prefix Sums
• 4
Sliding window / Two pointers
• 5
Modular Arithmetic
• 6
Number Theory
• 7
Binary Search
• 8
Basic Sorting
• 9
Greedy Algorithms
• 10
Basic Dynamic Programming
• 11
Recursion
• 12
• 13
Queue & Stack
• 14
Binary tree + BST
• 15
Divide & Conquer + Advanced Sorting
• 16
Heap
• 17
Hashing
• 18
Graph Representation
• 19
BFS

• # Implementing a custom sorting algorithm

We can try to implement a very simple sorting algorithm ourselves:
• On each iteration select the smallest element from the array
• Add that to the result
• Remove that element from the initial array
Repeat this process as many times as the number of elements in the initial array, and we’ll obtain a perfectly sorted array.

#### Input

The first line of the input contains a single integer `n` (1 ≤ n ≤ 1000) the number of elements in the array.
The next line contains `n` space-separated integers ().

#### Output

The program should print the array in the input sorted in increasing order.

#### Examples

 Input Output 5 5 5 3 2 3 2 3 3 5 5

#### Constraints

Time limit: 1 seconds

Memory limit: 512 MB

Output limit: 1 MB