近期发现部分用户尝试利用判题系统的评测信息进行作弊,严重破坏了公平竞争的环境。为维护良好的交流与学习氛围,已对判题机进行了优化,当程序遇到测试点不通过时会立即返回而不评测更多测试点;并且延长提交间隔为60秒。作弊行为不仅违背了学习的初衷,还侵害了其他用户的公平权益,希望所有用户能够遵守规范,专注算法与思维能力的提升。对于恶意多次尝试的用户,我们将保留进一步处置的权利。 —— Administrator

100751 - 选择排序

时间限制

1000 毫秒

内存限制

128 MB

通过次数

35

提交次数

51

选择排序的基本思想是(升序时):

1、首先找到最小元素,把它和数组第一个元素交换;

2、找到除第一个以外的最小元素,和第二个元素交换,直到全部元素都被放到正确位置。

当元素个数较少时,选择排序的效率比冒泡排序好。

给定一个数组,进行选择排序。

输入

第一行,一个正整数n表示要排序的数据个数。

第二行,n个整数,表示要排序的数据 a_1 , a_2 , ... , a_n

对于50%的数据:

n \le 1\cdot 10^3

对于100%的数据:

n \le 1\cdot 10^4

-1\cdot 10^9 \le a_1 , a_2 , ... , a_n \le 1\cdot 10^9

说明:

本题的数据与100750相同,可以查看各个评测点的耗时观察两种排序的效率有何不同。

输出

一行,表示从升序排序的结果。

样例

输入

3
5
2
3

输出

2 3 5