def selection_sort(A):
    n = len(A)
    swap_cnt = 0
    for i in range(n):
        mini = i
        for j in range(i, n):
            if A[j] < A[mini]:
                mini = j
        if mini != i:
            A[i], A[mini] = A[mini], A[i]
            swap_cnt += 1
    return A, swap_cnt

n = int(input())
A = list(map(int, input().split()))
A, swap_cnt = selection_sort(A)
print(' '.join(list(map(str, A))))
print(swap_cnt)
 def selection_sort(A):
    n = len(A)
    swap_cnt = 0
    for i in range(n):
        mini = i
        for j in range(i, n):
            if A[j] < A[mini]:
                mini = j
        if mini != i:
            A[i], A[mini] = A[mini], A[i]
            swap_cnt += 1
    return A, swap_cnt selection_sort n = len(A) n len(A) len A swap_cnt = 0 swap_cnt 0 for i in range(n):
        mini = i
        for j in range(i, n):
            if A[j] < A[mini]:
                mini = j
        if mini != i:
            A[i], A[mini] = A[mini], A[i]
            swap_cnt += 1
     i range(n) range n mini = i mini i for j in range(i, n):
            if A[j] < A[mini]:
                mini = j
         j range(i, n) range i n if A[j] < A[mini]:
                mini = j
         A[j] < A[mini] A[j] A j A[mini] A mini mini = j mini j if mini != i:
            A[i], A[mini] = A[mini], A[i]
            swap_cnt += 1
     mini != i mini i A[i], A[mini] = A[mini], A[i] A[i] A i A[mini] A mini A[mini] A mini A[i] A i swap_cnt += 1 swap_cnt 1 return A, swap_cnt return A, swap_cnt A swap_cnt A A n = int(input()) n int(input()) int input() input A = list(map(int, input().split())) A list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split A, swap_cnt = selection_sort(A) A selection_sort(A) selection_sort A swap_cnt print(' '.join(list(map(str, A)))) print ' '.join(list(map(str, A))) ' '.join ' ' join list(map(str, A)) list map(str, A) map str A print(swap_cnt) print swap_cnt n = int(input()) int(input()) n def selection_sort(A):
    n = len(A)
    swap_cnt = 0
    for i in range(n):
        mini = i
        for j in range(i, n):
            if A[j] < A[mini]:
                mini = j
        if mini != i:
            A[i], A[mini] = A[mini], A[i]
            swap_cnt += 1
    return A, swap_cnt def selection_sort(A):
    n = len(A)
    swap_cnt = 0
    for i in range(n):
        mini = i
        for j in range(i, n):
            if A[j] < A[mini]:
                mini = j
        if mini != i:
            A[i], A[mini] = A[mini], A[i]
            swap_cnt += 1
    return A, swap_cnt selection_sort A = list(map(int, input().split())) list(map(int, input().split())) A swap_cnt = selection_sort(A) selection_sort(A) swap_cnt A, swap_cnt = selection_sort(A) selection_sort(A) A
def selection_sort(A):
    n = len(A)
    swap_cnt = 0
    for i in range(n):
        mini = i
        for j in range(i, n):
            if A[j] < A[mini]:
                mini = j
        if mini != i:
            A[i], A[mini] = A[mini], A[i]
            swap_cnt += 1
    return A, swap_cnt

n = int(input())
A = list(map(int, input().split()))
A, swap_cnt = selection_sort(A)
print(' '.join(list(map(str, A))))
print(swap_cnt)

