count = int(input());
data = [int(n) for n in input().split(" ")];

def selection_sort(data):
    count = len(data);
    o = 0;
    for i in range(count):
        minI = i;
        for j in range(i + 1, count):
            if data[j] < data[minI]:
                minI = j;
        if minI != i:
            temp = data[i];
            data[i] = data[minI];
            data[minI] = temp;
            o += 1;
    show(data);
    print(o);

def show(data):
    print(" ".join(str(n) for n in data));

selection_sort(data); count = int(input()) count int(input()) int input() input int(n) for n in input().split(" ") for n in input().split(" ") n input().split(" ") ().split () input split " " for n in input().split(" ") int(n) int n data = [int(n) for n in input().split(" ")] data [int(n) for n in input().split(" ")] def selection_sort(data):
    count = len(data);
    o = 0;
    for i in range(count):
        minI = i;
        for j in range(i + 1, count):
            if data[j] < data[minI]:
                minI = j;
        if minI != i:
            temp = data[i];
            data[i] = data[minI];
            data[minI] = temp;
            o += 1;
    show(data);
    print(o); selection_sort count = len(data) count len(data) len data o = 0 o 0 for i in range(count):
        minI = i;
        for j in range(i + 1, count):
            if data[j] < data[minI]:
                minI = j;
        if minI != i:
            temp = data[i];
            data[i] = data[minI];
            data[minI] = temp;
            o += 1;
     i range(count) range count minI = i minI i for j in range(i + 1, count):
            if data[j] < data[minI]:
                minI = j;
         j range(i + 1, count) range i + 1 i 1 count if data[j] < data[minI]:
                minI = j;
         data[j] < data[minI] data[j] data j data[minI] data minI minI = j minI j if minI != i:
            temp = data[i];
            data[i] = data[minI];
            data[minI] = temp;
            o += 1;
     minI != i minI i temp = data[i] temp data[i] data i data[i] = data[minI] data[i] data i data[minI] data minI data[minI] = temp data[minI] data minI temp o += 1 o 1 show(data) show data print(o) print o data data def show(data):
    print(" ".join(str(n) for n in data)); show print(" ".join(str(n) for n in data)) print " ".join(str(n) for n in data) " ".join " " join str(n) str n data data selection_sort(data) selection_sort data def selection_sort(data):
    count = len(data);
    o = 0;
    for i in range(count):
        minI = i;
        for j in range(i + 1, count):
            if data[j] < data[minI]:
                minI = j;
        if minI != i:
            temp = data[i];
            data[i] = data[minI];
            data[minI] = temp;
            o += 1;
    show(data);
    print(o); def selection_sort(data):
    count = len(data);
    o = 0;
    for i in range(count):
        minI = i;
        for j in range(i + 1, count):
            if data[j] < data[minI]:
                minI = j;
        if minI != i:
            temp = data[i];
            data[i] = data[minI];
            data[minI] = temp;
            o += 1;
    show(data);
    print(o); selection_sort count = int(input()) int(input()) count def show(data):
    print(" ".join(str(n) for n in data)); def show(data):
    print(" ".join(str(n) for n in data)); show data = [int(n) for n in input().split(" ")] [int(n) for n in input().split(" ")] data
count = int(input());
data = [int(n) for n in input().split(" ")];

def selection_sort(data):
    count = len(data);
    o = 0;
    for i in range(count):
        minI = i;
        for j in range(i + 1, count):
            if data[j] < data[minI]:
                minI = j;
        if minI != i:
            temp = data[i];
            data[i] = data[minI];
            data[minI] = temp;
            o += 1;
    show(data);
    print(o);

def show(data):
    print(" ".join(str(n) for n in data));

selection_sort(data);
