#coding: utf-8
#ALDS1_2B

def pnt(s):
 for i in xrange(len(s)):
  print s[i],
 print

n=int(raw_input())
a=map(int,raw_input().split())

cnt=0
for i in xrange(n):
 mini = i
 for j in xrange(i + 1, n):
  if a[j] < a[mini]:
   mini = j
 if i != mini:
  a[i], a[mini] = a[mini], a[i]
 if i!=mini:
  cnt+=1
pnt(a)
print cnt def pnt(s):
 for i in xrange(len(s)):
  print s[i],
 print pnt for i in xrange(len(s)):
  print s[i],
  i xrange(len(s)) xrange len(s) len s print s[i] s i print s s n=int(raw_input()) n int(raw_input()) int raw_input() raw_input a=map(int,raw_input().split()) a map(int,raw_input().split()) map int raw_input().split() ().split () raw_input split cnt=0 cnt 0 for i in xrange(n):
 mini = i
 for j in xrange(i + 1, n):
  if a[j] < a[mini]:
   mini = j
 if i != mini:
  a[i], a[mini] = a[mini], a[i]
 if i!=mini:
  cnt+=1 i xrange(n) xrange n mini = i mini i for j in xrange(i + 1, n):
  if a[j] < a[mini]:
   mini = j
  j xrange(i + 1, n) xrange i + 1 i 1 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 i != mini:
  a[i], a[mini] = a[mini], a[i]
  i != mini i 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 if i!=mini:
  cnt+=1 i!=mini i mini cnt+=1 cnt 1 pnt(a) pnt a print cnt+=1 1 cnt a=map(int,raw_input().split()) map(int,raw_input().split()) a mini = j j mini mini = i i mini n=int(raw_input()) int(raw_input()) n def pnt(s):
 for i in xrange(len(s)):
  print s[i],
 print def pnt(s):
 for i in xrange(len(s)):
  print s[i],
 print pnt cnt=0 0 cnt
#coding: utf-8
#ALDS1_2B

def pnt(s):
 for i in xrange(len(s)):
  print s[i],
 print

n=int(raw_input())
a=map(int,raw_input().split())

cnt=0
for i in xrange(n):
 mini = i
 for j in xrange(i + 1, n):
  if a[j] < a[mini]:
   mini = j
 if i != mini:
  a[i], a[mini] = a[mini], a[i]
 if i!=mini:
  cnt+=1
pnt(a)
print cnt