def sel_sort(A, N):
    ''' 選択ソート '''
    count = 0
    for n in range(N):
        minm = n
        for m in range(n, N):
            if A[m] < A[minm]:
                minm = m
            
        if minm != n:
            A[n], A[minm] = A[minm], A[n]
            count += 1
    
    return (A, count)


if __name__ == '__main__':
    N = int(input())
    A = list(map(int, input().split(' ')))

    ans = sel_sort(A, N)

    print(' '.join([str(x) for x in ans[0]]))
    print(ans[1]) def sel_sort(A, N):
    ''' 選択ソート '''
    count = 0
    for n in range(N):
        minm = n
        for m in range(n, N):
            if A[m] < A[minm]:
                minm = m
            
        if minm != n:
            A[n], A[minm] = A[minm], A[n]
            count += 1
    
    return (A, count) sel_sort ''' 選択ソート ''' count = 0 count 0 for n in range(N):
        minm = n
        for m in range(n, N):
            if A[m] < A[minm]:
                minm = m
            
        if minm != n:
            A[n], A[minm] = A[minm], A[n]
            count += 1
    
     n range(N) range N minm = n minm n for m in range(n, N):
            if A[m] < A[minm]:
                minm = m
            
         m range(n, N) range n N if A[m] < A[minm]:
                minm = m
            
         A[m] < A[minm] A[m] A m A[minm] A minm minm = m minm m if minm != n:
            A[n], A[minm] = A[minm], A[n]
            count += 1
    
     minm != n minm n A[n], A[minm] = A[minm], A[n] A[n] A n A[minm] A minm A[minm] A minm A[n] A n count += 1 count 1 return (A, count) (A, count) A count A A N N if __name__ == '__main__':
    N = int(input())
    A = list(map(int, input().split(' ')))

    ans = sel_sort(A, N)

    print(' '.join([str(x) for x in ans[0]]))
    print(ans[1]) __name__ == '__main__' __name__ '__main__' 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 ' ' ans = sel_sort(A, N) ans sel_sort(A, N) sel_sort A N str(x) for x in ans[0] for x in ans[0] x ans[0] ans 0 for x in ans[0] str(x) str x print(' '.join([str(x) for x in ans[0]])) print ' '.join([str(x) for x in ans[0]]) ' '.join ' ' join [str(x) for x in ans[0]] print(ans[1]) print ans[1] ans 1 A = list(map(int, input().split(' '))) list(map(int, input().split(' '))) A N = int(input()) int(input()) N ans = sel_sort(A, N) sel_sort(A, N) ans def sel_sort(A, N):
    ''' 選択ソート '''
    count = 0
    for n in range(N):
        minm = n
        for m in range(n, N):
            if A[m] < A[minm]:
                minm = m
            
        if minm != n:
            A[n], A[minm] = A[minm], A[n]
            count += 1
    
    return (A, count) def sel_sort(A, N):
    ''' 選択ソート '''
    count = 0
    for n in range(N):
        minm = n
        for m in range(n, N):
            if A[m] < A[minm]:
                minm = m
            
        if minm != n:
            A[n], A[minm] = A[minm], A[n]
            count += 1
    
    return (A, count) sel_sort
def sel_sort(A, N):
    ''' 選択ソート '''
    count = 0
    for n in range(N):
        minm = n
        for m in range(n, N):
            if A[m] < A[minm]:
                minm = m
            
        if minm != n:
            A[n], A[minm] = A[minm], A[n]
            count += 1
    
    return (A, count)


if __name__ == '__main__':
    N = int(input())
    A = list(map(int, input().split(' ')))

    ans = sel_sort(A, N)

    print(' '.join([str(x) for x in ans[0]]))
    print(ans[1])
