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

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

if __name__ == '__main__':
    limit = int(input())
    n = list(map(int, input().split()))[:limit]
    r, c = selection_sort(n)
    print(' '.join(map(str, r)))
    print(c)

