Write a program of the Selection Sort algorithm which sorts a sequence A in ascending order. The algorithm should be based on the following pseudocode:


SelectionSort(A)
1 for i = 0 to A.length-1
2     mini = i
3     for j = i to A.length-1
4         if A[j] < A[mini]
5             mini = j
6     swap A[i] and A[mini]


Note that, indices for array elements are based on 0-origin.

Your program should also print the number of swap operations defined in line 6 of the pseudocode in the case where i ≠ mini.

Constraints

1 ≤ N ≤ 100

Input

The first line of the input includes an integer N, the number of elements in the sequence.

In the second line, N elements of the sequence are given separated by space characters.

Output

The output consists of 2 lines.

In the first line, please print the sorted sequence. Two contiguous elements of the sequence should be separated by a space character.

In the second line, please print the number of swap operations.

Examples

Input

6
5 6 4 2 1 3


Output

1 2 3 4 5 6
4


Input

6
5 2 4 6 1 3


Output

1 2 3 4 5 6
3
#!/usr/bin/python
# -*- coding: UTF-8 -*-
i = input()
n = map(int, raw_input().split())
cnt=0

#リストの一番手前からみる。
for i in xrange(len(n)):
#いま見てる番目を記憶
    min=i
#フラグ判定を0で初期化
    flag=0
#リストの二番目から最後は一つ手前まで
    for j in xrange(i,len(n)):
        if n[j]<n[min]:
#より小さい値の順番目を記憶する。
#このifの中に入っていると入れ替え処理候補が有ったことになるのでフラグを立てる。
            min=j
            flag=1
#当初の比較のために取り出してきた値と発見した最小の値を入れ替える。
    n[i],n[min]=n[min],n[i]
    cnt+=flag
print ' '.join(map(str,n))
print cnt