#include <iostream>
#include <vector>
#include <chrono>
#include <cstdlib>
#include <ctime>
using namespace std;
struct Timer {
    std::chrono::high_resolution_clock::time_point start;
    Timer() : start(std::chrono::high_resolution_clock::now()) {}
    ~Timer() {
        auto stop = std::chrono::high_resolution_clock::now();
        auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(stop - start);
        std::cout << "Time: " << duration.count() << " ms\n";
    }
};

template<typename T>
void bubble(vector<T>& arr){
	Timer t;
	int n = arr.size();
	for(int i=0; i<n-1; i++){
    	for(int j=0; j<n-i-1; j++){
        	if(arr[j]> arr[j+1]){
            	T temp = arr[j];
            	arr[j] = arr[j+1];
            	arr[j+1] = temp;
        	}
    	}
	}
}
template<typename T>
void print(vector<T>& arr){
	for(int i=0; i< arr.size(); i++){
		cout << arr[i] << " ";
	} 
	cout << endl;
}
int main() {
	int n;
	cin>>n;
	vector<int> arr(n);
	for(int i=0; i<n; i++){
    	cin >> arr[i];
	}
	bubble(arr);
	print(arr);
	srand(time(0));
	vector<int> arr1(100);
	for(int i=0; i<100; i++){
    	arr1[i] = rand() % 100;
	}
	bubble(arr1);
	bubble(arr1);
	print(arr1);
	vector<int> arr2(30000);
	for(int i=0; i<30000; i++){
    	arr2[i] = rand() % 1000;
	}
	bubble(arr2);
	return 0;
}
