문제

솔이는 버블 정렬을 배웠지만 아직 버블 정렬이 어떻게 수행되는지 이해가 가지 않는다고 한다.


그런 솔이를 위해 버블 정렬이 진행되는 과정을 출력해주는 프로그램을 만들어주자.


수 교환은 최소로 하며, 교환이 일어날 때에만 그 결과를 출력해주면 된다.

입력

첫째 줄에 데이터의 개수 n이 주어진다. (1≤n≤100)


둘째 줄에 정렬하고자 하는 데이터 n개가 공백을 사이에 두고 주어진다.

출력

처음 입력으로 주어진 상태부터 시작하여 교환이 일어나는 과정을 모두 출력하여라.

예제 1 입력

5
1 19 14 19 2

예제 1 출력

1 19 14 19 2
1 14 19 19 2
1 14 19 2 19
1 14 2 19 19
1 2 14 19 19

예제 2 입력

9
8 10 15 20 2 17 18 3 11

예제 2 출력

8 10 15 20 2 17 18 3 11
8 10 15 2 20 17 18 3 11
8 10 15 2 17 20 18 3 11
8 10 15 2 17 18 20 3 11
8 10 15 2 17 18 3 20 11
8 10 15 2 17 18 3 11 20
8 10 2 15 17 18 3 11 20
8 10 2 15 17 3 18 11 20
8 10 2 15 17 3 11 18 20
8 2 10 15 17 3 11 18 20
8 2 10 15 3 17 11 18 20
8 2 10 15 3 11 17 18 20
2 8 10 15 3 11 17 18 20
2 8 10 3 15 11 17 18 20
2 8 10 3 11 15 17 18 20
2 8 3 10 11 15 17 18 20
2 3 8 10 11 15 17 18 20

Source

n = int(input())
arr = list(map(int, input().split()))

print(*arr)

for i in range(n):
	for j in range(n - i - 1):
		if(arr[j] > arr[j + 1]):
			tmp = arr[j]
			arr[j] = arr[j + 1]
			arr[j + 1] = tmp
			print(*arr)