import java.io.*;
 
class Main {
	
    public static void main(String[] args) {
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            int n = Integer.parseInt( kb.readLine() );
			String[] nums = kb.readLine().split( " " );
			int[] A = new int[n];
            int i, j;
            
            for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            }
            
            int cnt = 0;
			cnt = selectionSort( A );
			
            StringBuilder output = new StringBuilder( 200+1 );
            for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            }
            output.deleteCharAt( output.lastIndexOf( " " ) );

            System.out.println( output );
            System.out.println( cnt );
			 
            kb.close();
        } catch( IOException e ) {
            System.err.println( e );
        }        
    }
    
    static int selectionSort( int[] A ) 
    {
    	int tmp;
    	int i, j, mini, cnt;
    	int n = A.length;
    	
    	cnt = 0;
   		for( i=0; i<n; i++ ) {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		}
   		return cnt;
    }
} import java.io.*; io.* java class Main {
	
    public static void main(String[] args) {
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            int n = Integer.parseInt( kb.readLine() );
			String[] nums = kb.readLine().split( " " );
			int[] A = new int[n];
            int i, j;
            
            for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            }
            
            int cnt = 0;
			cnt = selectionSort( A );
			
            StringBuilder output = new StringBuilder( 200+1 );
            for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            }
            output.deleteCharAt( output.lastIndexOf( " " ) );

            System.out.println( output );
            System.out.println( cnt );
			 
            kb.close();
        } catch( IOException e ) {
            System.err.println( e );
        }        
    }
    
    static int selectionSort( int[] A ) 
    {
    	int tmp;
    	int i, j, mini, cnt;
    	int n = A.length;
    	
    	cnt = 0;
   		for( i=0; i<n; i++ ) {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		}
   		return cnt;
    }
} Main public static void main(String[] args) {
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            int n = Integer.parseInt( kb.readLine() );
			String[] nums = kb.readLine().split( " " );
			int[] A = new int[n];
            int i, j;
            
            for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            }
            
            int cnt = 0;
			cnt = selectionSort( A );
			
            StringBuilder output = new StringBuilder( 200+1 );
            for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            }
            output.deleteCharAt( output.lastIndexOf( " " ) );

            System.out.println( output );
            System.out.println( cnt );
			 
            kb.close();
        } catch( IOException e ) {
            System.err.println( e );
        }        
    } main {
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            int n = Integer.parseInt( kb.readLine() );
			String[] nums = kb.readLine().split( " " );
			int[] A = new int[n];
            int i, j;
            
            for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            }
            
            int cnt = 0;
			cnt = selectionSort( A );
			
            StringBuilder output = new StringBuilder( 200+1 );
            for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            }
            output.deleteCharAt( output.lastIndexOf( " " ) );

            System.out.println( output );
            System.out.println( cnt );
			 
            kb.close();
        } catch( IOException e ) {
            System.err.println( e );
        }        
    } BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) ); kb new BufferedReader( new InputStreamReader( System.in ) ) try {
            int n = Integer.parseInt( kb.readLine() );
			String[] nums = kb.readLine().split( " " );
			int[] A = new int[n];
            int i, j;
            
            for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            }
            
            int cnt = 0;
			cnt = selectionSort( A );
			
            StringBuilder output = new StringBuilder( 200+1 );
            for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            }
            output.deleteCharAt( output.lastIndexOf( " " ) );

            System.out.println( output );
            System.out.println( cnt );
			 
            kb.close();
        } catch( IOException e ) {
            System.err.println( e );
        } catch( IOException e ) {
            System.err.println( e );
        } IOException e {
            System.err.println( e );
        } System.err.println( e ) System.err.println System.err System System.err e {
            int n = Integer.parseInt( kb.readLine() );
			String[] nums = kb.readLine().split( " " );
			int[] A = new int[n];
            int i, j;
            
            for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            }
            
            int cnt = 0;
			cnt = selectionSort( A );
			
            StringBuilder output = new StringBuilder( 200+1 );
            for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            }
            output.deleteCharAt( output.lastIndexOf( " " ) );

            System.out.println( output );
            System.out.println( cnt );
			 
            kb.close();
        } int n = Integer.parseInt( kb.readLine() ); n Integer.parseInt( kb.readLine() ) Integer.parseInt Integer kb.readLine() kb.readLine kb String[] nums = kb.readLine().split( " " ); nums kb.readLine().split( " " ) kb.readLine().split kb.readLine() kb.readLine kb " " int[] A = new int[n]; A new int[n] n int i i j; j for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            } i=0; i=0 i 0 i<n i n i++ i++ i {
            	A[i] = Integer.parseInt( nums[i] );
            } {
            	A[i] = Integer.parseInt( nums[i] );
            } A[i] = Integer.parseInt( nums[i] ) A[i] A i Integer.parseInt( nums[i] ) Integer.parseInt Integer nums[i] nums i int cnt = 0; cnt 0 cnt = selectionSort( A ) cnt selectionSort( A ) selectionSort A StringBuilder output = new StringBuilder( 200+1 ); output new StringBuilder( 200+1 ) for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            } i=0; i=0 i 0 i<n i n i++ i++ i {
            	output.append( A[i]  );
            	output.append( " "  );
            } {
            	output.append( A[i]  );
            	output.append( " "  );
            } output.append( A[i]  ) output.append output A[i] A i output.append( " "  ) output.append output " " output.deleteCharAt( output.lastIndexOf( " " ) ) output.deleteCharAt output output.lastIndexOf( " " ) output.lastIndexOf output " " System.out.println( output ) System.out.println System.out System System.out output System.out.println( cnt ) System.out.println System.out System System.out cnt kb.close() kb.close kb String[] args args static int selectionSort( int[] A ) 
    {
    	int tmp;
    	int i, j, mini, cnt;
    	int n = A.length;
    	
    	cnt = 0;
   		for( i=0; i<n; i++ ) {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		}
   		return cnt;
    } selectionSort {
    	int tmp;
    	int i, j, mini, cnt;
    	int n = A.length;
    	
    	cnt = 0;
   		for( i=0; i<n; i++ ) {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		}
   		return cnt;
    } int tmp; tmp int i i j j mini mini cnt; cnt int n = A.length; n A.length A A.length cnt = 0 cnt 0 for( i=0; i<n; i++ ) {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		} i=0; i=0 i 0 i<n i n i++ i++ i {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		} {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		} mini = i mini i for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			} j=i; j=i j i j<n j n j++ j++ j {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			} {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			} if( A[j] < A[ mini ] ) {
   					mini = j;
   				} A[j] < A[ mini ] A[j] A j A[ mini ] A mini {
   					mini = j;
   				} mini = j mini j if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			} mini != i mini i {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			} tmp = A[ mini ] tmp A[ mini ] A mini A[ mini ] = A[ i ] A[ mini ] A mini A[ i ] A i A[ i ] = tmp A[ i ] A i tmp cnt++ cnt return cnt; cnt int[] A A
import java.io.*;
 
class Main {
	
    public static void main(String[] args) {
        BufferedReader kb = new BufferedReader( new InputStreamReader( System.in ) );
        try {
            int n = Integer.parseInt( kb.readLine() );
			String[] nums = kb.readLine().split( " " );
			int[] A = new int[n];
            int i, j;
            
            for( i=0; i<n; i++ ) {
            	A[i] = Integer.parseInt( nums[i] );
            }
            
            int cnt = 0;
			cnt = selectionSort( A );
			
            StringBuilder output = new StringBuilder( 200+1 );
            for( i=0; i<n; i++ ) {
            	output.append( A[i]  );
            	output.append( " "  );
            }
            output.deleteCharAt( output.lastIndexOf( " " ) );

            System.out.println( output );
            System.out.println( cnt );
			 
            kb.close();
        } catch( IOException e ) {
            System.err.println( e );
        }        
    }
    
    static int selectionSort( int[] A ) 
    {
    	int tmp;
    	int i, j, mini, cnt;
    	int n = A.length;
    	
    	cnt = 0;
   		for( i=0; i<n; i++ ) {
   			mini = i;
   			for( j=i; j<n; j++ ) {
   				if( A[j] < A[ mini ] ) {
   					mini = j;
   				}
   			}
   			if( mini != i ) {
		   		tmp = A[ mini ];
				A[ mini ] = A[ i ];
				A[ i ] = tmp;
				cnt++;
			}
   		}
   		return cnt;
    }
}