# -*- coding:utf-8 -*-

def Selection_Sort(A,n):
    count = 0
    for i in range(n):
        mini = i
        for j in range(i,n): #i以上の要素において最小のAをminiに格納
            if A[j] < A[mini]:
                mini = j
        if A[i] != A[mini]:
            A[i], A[mini] = A[mini], A[i]
            count += 1
    return A, count

n = int(input())
numbers = list(map(int, input().split(" ")))

ans_list, count = Selection_Sort(numbers, n)
ans_list = map(str, ans_list)

print(" ".join(ans_list))
print(count) def Selection_Sort(A,n):
    count = 0
    for i in range(n):
        mini = i
        for j in range(i,n): #i以上の要素において最小のAをminiに格納
            if A[j] < A[mini]:
                mini = j
        if A[i] != A[mini]:
            A[i], A[mini] = A[mini], A[i]
            count += 1
    return A, count Selection_Sort count = 0 count 0 for i in range(n):
        mini = i
        for j in range(i,n): #i以上の要素において最小のAをminiに格納
            if A[j] < A[mini]:
                mini = j
        if A[i] != A[mini]:
            A[i], A[mini] = A[mini], A[i]
            count += 1
     i range(n) range n mini = i mini i for j in range(i,n): #i以上の要素において最小のAをminiに格納
            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 A[i] != A[mini]:
            A[i], A[mini] = A[mini], A[i]
            count += 1
     A[i] != A[mini] A[i] A i A[mini] A mini A[i], A[mini] = A[mini], A[i] A[i] A i A[mini] A mini A[mini] A mini A[i] A i count += 1 count 1 return A, count return A, count A count A A n n n = int(input()) n int(input()) int input() input numbers = list(map(int, input().split(" "))) numbers list(map(int, input().split(" "))) list map(int, input().split(" ")) map int input().split(" ") ().split () input split " " ans_list, count = Selection_Sort(numbers, n) ans_list Selection_Sort(numbers, n) Selection_Sort numbers n count ans_list = map(str, ans_list) ans_list map(str, ans_list) map str ans_list print(" ".join(ans_list)) print " ".join(ans_list) " ".join " " join ans_list print(count) print count numbers = list(map(int, input().split(" "))) list(map(int, input().split(" "))) numbers ans_list = map(str, ans_list) map(str, ans_list) ans_list def Selection_Sort(A,n):
    count = 0
    for i in range(n):
        mini = i
        for j in range(i,n): #i以上の要素において最小のAをminiに格納
            if A[j] < A[mini]:
                mini = j
        if A[i] != A[mini]:
            A[i], A[mini] = A[mini], A[i]
            count += 1
    return A, count def Selection_Sort(A,n):
    count = 0
    for i in range(n):
        mini = i
        for j in range(i,n): #i以上の要素において最小のAをminiに格納
            if A[j] < A[mini]:
                mini = j
        if A[i] != A[mini]:
            A[i], A[mini] = A[mini], A[i]
            count += 1
    return A, count Selection_Sort count = Selection_Sort(numbers, n) Selection_Sort(numbers, n) count n = int(input()) int(input()) n ans_list, count = Selection_Sort(numbers, n) Selection_Sort(numbers, n) ans_list
# -*- coding:utf-8 -*-

def Selection_Sort(A,n):
    count = 0
    for i in range(n):
        mini = i
        for j in range(i,n): #i以上の要素において最小のAをminiに格納
            if A[j] < A[mini]:
                mini = j
        if A[i] != A[mini]:
            A[i], A[mini] = A[mini], A[i]
            count += 1
    return A, count

n = int(input())
numbers = list(map(int, input().split(" ")))

ans_list, count = Selection_Sort(numbers, n)
ans_list = map(str, ans_list)

print(" ".join(ans_list))
print(count)