	.file	"621256.c"
	.intel_syntax noprefix
	.text
	.globl	flag
	.bss
	.type	flag, @object
	.size	flag, 1
flag:
	.zero	1
	.globl	str
	.align 8
	.type	str, @object
	.size	str, 10
str:
	.zero	10
	.globl	adj
	.align 32
	.type	adj, @object
	.size	adj, 972
adj:
	.zero	972
	.globl	A
	.align 32
	.type	A, @object
	.size	A, 36
A:
	.zero	36
	.globl	B
	.align 32
	.type	B, @object
	.size	B, 36
B:
	.zero	36
	.globl	C
	.align 32
	.type	C, @object
	.size	C, 36
C:
	.zero	36
	.globl	t
	.align 4
	.type	t, @object
	.size	t, 4
t:
	.zero	4
	.globl	len
	.align 4
	.type	len, @object
	.size	len, 4
len:
	.zero	4
	.globl	steps
	.align 4
	.type	steps, @object
	.size	steps, 4
steps:
	.zero	4
	.globl	n
	.data
	.align 4
	.type	n, @object
	.size	n, 4
n:
	.long	9
	.globl	T
	.bss
	.align 32
	.type	T, @object
	.size	T, 4096
T:
	.zero	4096
	.globl	dv
	.align 32
	.type	dv, @object
	.size	dv, 40
dv:
	.zero	40
	.globl	row
	.align 32
	.type	row, @object
	.size	row, 36
row:
	.zero	36
	.globl	col
	.align 32
	.type	col, @object
	.size	col, 36
col:
	.zero	36
	.globl	box
	.align 32
	.type	box, @object
	.size	box, 36
box:
	.zero	36
	.globl	ar
	.align 32
	.type	ar, @object
	.size	ar, 324
ar:
	.zero	324
	.text
	.globl	compare
	.type	compare, @function
compare:
.LFB6:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	mov	QWORD PTR -8[rbp], rdi
	mov	QWORD PTR -16[rbp], rsi
	mov	rax, QWORD PTR -16[rbp]
	mov	edx, DWORD PTR 8[rax]
	mov	rax, QWORD PTR -8[rbp]
	mov	ecx, DWORD PTR 8[rax]
	mov	eax, edx
	sub	eax, ecx
	pop	rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE6:
	.size	compare, .-compare
	.globl	__popcountdi2
	.globl	F
	.type	F, @function
F:
.LFB7:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 32
	mov	edx, 36
	mov	esi, 0
	lea	rdi, A[rip]
	call	memset@PLT
	mov	edx, 36
	mov	esi, 0
	lea	rdi, B[rip]
	call	memset@PLT
	mov	edx, 36
	mov	esi, 0
	lea	rdi, C[rip]
	call	memset@PLT
	mov	DWORD PTR -28[rbp], 0
	jmp	.L4
.L8:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L5
.L7:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -4[rbp], eax
	cmp	DWORD PTR -4[rbp], 0
	je	.L6
	sub	DWORD PTR -4[rbp], 1
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, A[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, A[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, B[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, B[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	sub	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	imul	rcx, rcx, 1431655766
	shr	rcx, 32
	sar	eax, 31
	mov	esi, ecx
	sub	esi, eax
	movsx	rdi, esi
	movsx	rcx, edx
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	add	rax, rdi
	lea	rcx, 0[0+rax*4]
	lea	rax, C[rip]
	mov	edi, DWORD PTR [rcx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	r8d, 1
	mov	ecx, eax
	sal	r8d, cl
	mov	eax, r8d
	or	edi, eax
	mov	ecx, edi
	movsx	rsi, esi
	movsx	rdx, edx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	lea	rdx, 0[0+rax*4]
	lea	rax, C[rip]
	mov	DWORD PTR [rdx+rax], ecx
.L6:
	add	DWORD PTR -24[rbp], 1
.L5:
	mov	eax, DWORD PTR n[rip]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L7
	add	DWORD PTR -28[rbp], 1
.L4:
	mov	eax, DWORD PTR n[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L8
	mov	DWORD PTR -16[rbp], 0
	mov	DWORD PTR -12[rbp], -1
	mov	DWORD PTR -20[rbp], 0
	jmp	.L9
.L13:
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	lea	rax, adj[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -28[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	lea	rax, adj[rip+4]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	jne	.L10
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, A[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, B[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edi, ecx
	or	edi, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	mov	ecx, edx
	sub	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	mov	esi, eax
	mov	eax, edx
	sub	eax, esi
	movsx	rsi, eax
	movsx	rdx, ecx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	eax, DWORD PTR [rdx+rax]
	or	eax, edi
	mov	eax, eax
	mov	rdi, rax
	call	__popcountdi2@PLT
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	cmp	eax, DWORD PTR -12[rbp]
	jle	.L11
	mov	eax, DWORD PTR -8[rbp]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	mov	DWORD PTR -16[rbp], eax
.L11:
	mov	eax, DWORD PTR n[rip]
	cmp	DWORD PTR -12[rbp], eax
	jne	.L10
	mov	eax, -1
	jmp	.L12
.L10:
	add	DWORD PTR -20[rbp], 1
.L9:
	mov	eax, DWORD PTR len[rip]
	cmp	DWORD PTR -20[rbp], eax
	jl	.L13
	mov	eax, DWORD PTR -16[rbp]
.L12:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE7:
	.size	F, .-F
	.section	.rodata
.LC0:
	.string	"%d "
.LC1:
	.string	""
	.text
	.globl	backtrack
	.type	backtrack, @function
backtrack:
.LFB8:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	sub	rsp, 64
	mov	DWORD PTR -52[rbp], edi
	mov	eax, DWORD PTR steps[rip]
	add	eax, 1
	mov	DWORD PTR steps[rip], eax
	mov	eax, DWORD PTR len[rip]
	cmp	DWORD PTR -52[rbp], eax
	jne	.L15
	mov	BYTE PTR flag[rip], 1
	mov	DWORD PTR -40[rbp], 0
	jmp	.L16
.L19:
	mov	DWORD PTR -36[rbp], 0
	jmp	.L17
.L18:
	mov	eax, DWORD PTR -36[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -40[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	esi, eax
	lea	rdi, .LC0[rip]
	mov	eax, 0
	call	printf@PLT
	add	DWORD PTR -36[rbp], 1
.L17:
	mov	eax, DWORD PTR n[rip]
	cmp	DWORD PTR -36[rbp], eax
	jl	.L18
	lea	rdi, .LC1[rip]
	call	puts@PLT
	add	DWORD PTR -40[rbp], 1
.L16:
	mov	eax, DWORD PTR n[rip]
	cmp	DWORD PTR -40[rbp], eax
	jl	.L19
	jmp	.L14
.L15:
	mov	eax, 0
	call	F
	mov	DWORD PTR -28[rbp], eax
	cmp	DWORD PTR -28[rbp], -1
	je	.L25
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	lea	rax, adj[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -24[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	lea	rax, adj[rip+4]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dv[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -16[rbp], eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dv[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -12[rbp], eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	esi, ecx
	or	esi, eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	eax, DWORD PTR [rdx+rax]
	or	eax, esi
	not	eax
	and	eax, 511
	mov	DWORD PTR -32[rbp], eax
	jmp	.L22
.L24:
	mov	eax, DWORD PTR -32[rbp]
	neg	eax
	and	eax, DWORD PTR -32[rbp]
	mov	DWORD PTR -8[rbp], eax
	mov	eax, DWORD PTR -8[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, T[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	DWORD PTR -4[rbp], eax
	mov	eax, DWORD PTR -4[rbp]
	lea	ecx, 1[rax]
	mov	eax, DWORD PTR -20[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rsi
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -12[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -52[rbp]
	add	eax, 1
	mov	edi, eax
	call	backtrack
	mov	eax, DWORD PTR -20[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	DWORD PTR [rdx+rax], 0
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	not	eax
	mov	ecx, edx
	and	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	not	eax
	mov	ecx, edx
	and	ecx, eax
	mov	eax, DWORD PTR -20[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -12[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -4[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	not	eax
	mov	ecx, edx
	and	ecx, eax
	mov	eax, DWORD PTR -12[rbp]
	movsx	rsi, eax
	mov	eax, DWORD PTR -16[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	DWORD PTR [rdx+rax], ecx
	movzx	eax, BYTE PTR flag[rip]
	test	al, al
	jne	.L26
	mov	eax, DWORD PTR -8[rbp]
	xor	DWORD PTR -32[rbp], eax
.L22:
	cmp	DWORD PTR -32[rbp], 0
	jne	.L24
	jmp	.L14
.L25:
	nop
	jmp	.L14
.L26:
	nop
.L14:
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE8:
	.size	backtrack, .-backtrack
	.section	.rodata
.LC2:
	.string	"%d"
.LC3:
	.string	"No solution"
	.text
	.globl	main
	.type	main, @function
main:
.LFB9:
	.cfi_startproc
	endbr64
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	mov	rbp, rsp
	.cfi_def_cfa_register 6
	push	rbx
	sub	rsp, 24
	.cfi_offset 3, -24
	mov	DWORD PTR -28[rbp], 0
	jmp	.L28
.L29:
	mov	eax, DWORD PTR -28[rbp]
	mov	edx, 1
	mov	ecx, eax
	sal	edx, cl
	mov	eax, edx
	cdqe
	lea	rcx, 0[0+rax*4]
	lea	rdx, T[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rcx+rdx], eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	mov	ecx, edx
	sub	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, dv[rip]
	mov	DWORD PTR [rdx+rax], ecx
	add	DWORD PTR -28[rbp], 1
.L28:
	cmp	DWORD PTR -28[rbp], 9
	jle	.L29
	lea	rsi, t[rip]
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	jmp	.L30
.L42:
	mov	edx, 324
	mov	esi, 0
	lea	rdi, ar[rip]
	call	memset@PLT
	mov	edx, 36
	mov	esi, 0
	lea	rdi, row[rip]
	call	memset@PLT
	mov	edx, 36
	mov	esi, 0
	lea	rdi, col[rip]
	call	memset@PLT
	mov	edx, 36
	mov	esi, 0
	lea	rdi, box[rip]
	call	memset@PLT
	mov	DWORD PTR -28[rbp], 0
	jmp	.L31
.L36:
	mov	DWORD PTR -24[rbp], 0
	jmp	.L32
.L35:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	add	rax, rdx
	mov	rsi, rax
	lea	rdi, .LC2[rip]
	mov	eax, 0
	call	__isoc99_scanf@PLT
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	je	.L44
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	eax, DWORD PTR [rdx+rax]
	sub	eax, 1
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	edx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	esi, 1
	mov	ecx, eax
	sal	esi, cl
	mov	eax, esi
	mov	ecx, edx
	or	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	DWORD PTR [rdx+rax], ecx
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	sub	edx, eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	imul	rcx, rcx, 1431655766
	shr	rcx, 32
	sar	eax, 31
	mov	esi, ecx
	sub	esi, eax
	movsx	rdi, esi
	movsx	rcx, edx
	mov	rax, rcx
	add	rax, rax
	add	rax, rcx
	add	rax, rdi
	lea	rcx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	edi, DWORD PTR [rcx+rax]
	mov	eax, DWORD PTR -20[rbp]
	mov	r8d, 1
	mov	ecx, eax
	sal	r8d, cl
	mov	eax, r8d
	or	edi, eax
	mov	ecx, edi
	movsx	rsi, esi
	movsx	rdx, edx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	DWORD PTR [rdx+rax], ecx
	jmp	.L34
.L44:
	nop
.L34:
	add	DWORD PTR -24[rbp], 1
.L32:
	mov	eax, DWORD PTR n[rip]
	cmp	DWORD PTR -24[rbp], eax
	jl	.L35
	add	DWORD PTR -28[rbp], 1
.L31:
	mov	eax, DWORD PTR n[rip]
	cmp	DWORD PTR -28[rbp], eax
	jl	.L36
	mov	DWORD PTR len[rip], 0
	mov	eax, DWORD PTR n[rip]
	sub	eax, 1
	mov	DWORD PTR -28[rbp], eax
	jmp	.L37
.L41:
	mov	eax, DWORD PTR n[rip]
	sub	eax, 1
	mov	DWORD PTR -24[rbp], eax
	jmp	.L38
.L40:
	mov	eax, DWORD PTR -24[rbp]
	movsx	rcx, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	mov	rax, rdx
	sal	rax, 3
	add	rax, rdx
	add	rax, rcx
	lea	rdx, 0[0+rax*4]
	lea	rax, ar[rip]
	mov	eax, DWORD PTR [rdx+rax]
	test	eax, eax
	jne	.L39
	mov	eax, DWORD PTR -28[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, row[rip]
	mov	ecx, DWORD PTR [rdx+rax]
	mov	eax, DWORD PTR -24[rbp]
	cdqe
	lea	rdx, 0[0+rax*4]
	lea	rax, col[rip]
	mov	eax, DWORD PTR [rdx+rax]
	mov	edi, ecx
	or	edi, eax
	mov	eax, DWORD PTR -28[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	mov	ecx, edx
	sub	ecx, eax
	mov	eax, DWORD PTR -24[rbp]
	movsx	rdx, eax
	imul	rdx, rdx, 1431655766
	shr	rdx, 32
	sar	eax, 31
	mov	esi, eax
	mov	eax, edx
	sub	eax, esi
	movsx	rsi, eax
	movsx	rdx, ecx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	add	rax, rsi
	lea	rdx, 0[0+rax*4]
	lea	rax, box[rip]
	mov	eax, DWORD PTR [rdx+rax]
	or	eax, edi
	mov	DWORD PTR -20[rbp], eax
	mov	eax, DWORD PTR len[rip]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 2
	mov	rcx, rax
	lea	rdx, adj[rip]
	mov	eax, DWORD PTR -28[rbp]
	mov	DWORD PTR [rcx+rdx], eax
	mov	eax, DWORD PTR len[rip]
	movsx	rdx, eax
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 2
	mov	rcx, rax
	lea	rdx, adj[rip+4]
	mov	eax, DWORD PTR -24[rbp]
	mov	DWORD PTR [rcx+rdx], eax
	mov	edx, DWORD PTR -20[rbp]
	mov	ebx, DWORD PTR len[rip]
	lea	eax, 1[rbx]
	mov	DWORD PTR len[rip], eax
	mov	eax, edx
	mov	rdi, rax
	call	__popcountdi2@PLT
	mov	ecx, eax
	movsx	rdx, ebx
	mov	rax, rdx
	add	rax, rax
	add	rax, rdx
	sal	rax, 2
	mov	rdx, rax
	lea	rax, adj[rip+8]
	mov	DWORD PTR [rdx+rax], ecx
.L39:
	sub	DWORD PTR -24[rbp], 1
.L38:
	cmp	DWORD PTR -24[rbp], 0
	jns	.L40
	sub	DWORD PTR -28[rbp], 1
.L37:
	cmp	DWORD PTR -28[rbp], 0
	jns	.L41
	mov	eax, DWORD PTR len[rip]
	cdqe
	lea	rcx, compare[rip]
	mov	edx, 12
	mov	rsi, rax
	lea	rdi, adj[rip]
	call	qsort@PLT
	mov	BYTE PTR flag[rip], 0
	mov	DWORD PTR steps[rip], 0
	mov	edi, 0
	call	backtrack
	movzx	eax, BYTE PTR flag[rip]
	xor	eax, 1
	test	al, al
	je	.L30
	lea	rdi, .LC3[rip]
	call	puts@PLT
.L30:
	mov	eax, DWORD PTR t[rip]
	lea	edx, -1[rax]
	mov	DWORD PTR t[rip], edx
	test	eax, eax
	jne	.L42
	mov	eax, 0
	mov	rbx, QWORD PTR -8[rbp]
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE9:
	.size	main, .-main
	.ident	"GCC: (Ubuntu 10.5.0-1ubuntu1~20.04) 10.5.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 6
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"621256.c"
	.text
	.comm	flag,1,1
	.comm	str,10,4
	.comm	adj,972,4
	.comm	A,36,4
	.comm	B,36,4
	.comm	C,36,4
	.comm	t,4,4
	.comm	len,4,4
	.comm	steps,4,4
	.global	n
	.data
	.align	2
	.type	n, %object
	.size	n, 4
n:
	.word	9
	.comm	T,4096,4
	.comm	dv,40,4
	.comm	row,36,4
	.comm	col,36,4
	.comm	box,36,4
	.comm	ar,324,4
	.text
	.align	2
	.global	compare
	.syntax unified
	.arm
	.fpu softvfp
	.type	compare, %function
compare:
	@ args = 0, pretend = 0, frame = 8
	@ frame_needed = 1, uses_anonymous_args = 0
	@ link register save eliminated.
	str	fp, [sp, #-4]!
	add	fp, sp, #0
	sub	sp, sp, #12
	str	r0, [fp, #-8]
	str	r1, [fp, #-12]
	ldr	r3, [fp, #-12]
	ldr	r2, [r3, #8]
	ldr	r3, [fp, #-8]
	ldr	r3, [r3, #8]
	sub	r3, r2, r3
	mov	r0, r3
	add	sp, fp, #0
	@ sp needed
	ldr	fp, [sp], #4
	bx	lr
	.size	compare, .-compare
	.global	__popcountsi2
	.align	2
	.global	F
	.syntax unified
	.arm
	.fpu softvfp
	.type	F, %function
F:
	@ args = 0, pretend = 0, frame = 32
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #32
	mov	r2, #36
	mov	r1, #0
	ldr	r0, .L14
	bl	memset
	mov	r2, #36
	mov	r1, #0
	ldr	r0, .L14+4
	bl	memset
	mov	r2, #36
	mov	r1, #0
	ldr	r0, .L14+8
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-32]
	b	.L4
.L8:
	mov	r3, #0
	str	r3, [fp, #-28]
	b	.L5
.L7:
	ldr	r1, .L14+12
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	cmp	r3, #0
	beq	.L6
	ldr	r3, [fp, #-8]
	sub	r3, r3, #1
	str	r3, [fp, #-8]
	ldr	r2, .L14
	ldr	r3, [fp, #-32]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	orr	r2, r2, r3
	ldr	r1, .L14
	ldr	r3, [fp, #-32]
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L14+4
	ldr	r3, [fp, #-28]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	orr	r2, r2, r3
	ldr	r1, .L14+4
	ldr	r3, [fp, #-28]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-32]
	ldr	r2, .L14+16
	smull	r1, r2, r3, r2
	asr	r3, r3, #31
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	ldr	r1, .L14+16
	smull	r0, r1, r3, r1
	asr	r3, r3, #31
	sub	r1, r1, r3
	ldr	r0, .L14+8
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, r1
	ldr	r0, [r0, r3, lsl #2]
	mov	ip, #1
	ldr	r3, [fp, #-8]
	lsl	r3, ip, r3
	orr	r0, r0, r3
	ldr	ip, .L14+8
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, r1
	str	r0, [ip, r3, lsl #2]
.L6:
	ldr	r3, [fp, #-28]
	add	r3, r3, #1
	str	r3, [fp, #-28]
.L5:
	ldr	r3, .L14+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-28]
	cmp	r2, r3
	blt	.L7
	ldr	r3, [fp, #-32]
	add	r3, r3, #1
	str	r3, [fp, #-32]
.L4:
	ldr	r3, .L14+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-32]
	cmp	r2, r3
	blt	.L8
	mov	r3, #0
	str	r3, [fp, #-20]
	mvn	r3, #0
	str	r3, [fp, #-16]
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L9
.L13:
	ldr	r1, .L14+24
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	str	r3, [fp, #-32]
	ldr	r1, .L14+24
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #4
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r1, .L14+12
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-28]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	cmp	r3, #0
	bne	.L10
	ldr	r2, .L14
	ldr	r3, [fp, #-32]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r1, .L14+4
	ldr	r3, [fp, #-28]
	ldr	r3, [r1, r3, lsl #2]
	orr	r1, r2, r3
	ldr	r3, [fp, #-32]
	ldr	r2, .L14+16
	smull	r0, r2, r3, r2
	asr	r3, r3, #31
	sub	r2, r2, r3
	ldr	r3, [fp, #-28]
	ldr	r0, .L14+16
	smull	ip, r0, r3, r0
	asr	r3, r3, #31
	sub	r0, r0, r3
	ldr	ip, .L14+28
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, r0
	ldr	r3, [ip, r3, lsl #2]
	orr	r3, r1, r3
	mov	r0, r3
	bl	__popcountsi2
	mov	r3, r0
	str	r3, [fp, #-12]
	ldr	r2, [fp, #-12]
	ldr	r3, [fp, #-16]
	cmp	r2, r3
	ble	.L11
	ldr	r3, [fp, #-12]
	str	r3, [fp, #-16]
	ldr	r3, [fp, #-24]
	str	r3, [fp, #-20]
.L11:
	ldr	r3, .L14+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-16]
	cmp	r2, r3
	bne	.L10
	mvn	r3, #0
	b	.L12
.L10:
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L9:
	ldr	r3, .L14+32
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L13
	ldr	r3, [fp, #-20]
.L12:
	mov	r0, r3
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L15:
	.align	2
.L14:
	.word	A
	.word	B
	.word	C
	.word	ar
	.word	1431655766
	.word	n
	.word	adj
	.word	box
	.word	len
	.size	F, .-F
	.section	.rodata
	.align	2
.LC0:
	.ascii	"%d \000"
	.align	2
.LC1:
	.ascii	"\000"
	.text
	.align	2
	.global	backtrack
	.syntax unified
	.arm
	.fpu softvfp
	.type	backtrack, %function
backtrack:
	@ args = 0, pretend = 0, frame = 48
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{fp, lr}
	add	fp, sp, #4
	sub	sp, sp, #48
	str	r0, [fp, #-48]
	ldr	r3, .L29
	ldr	r3, [r3]
	add	r3, r3, #1
	ldr	r2, .L29
	str	r3, [r2]
	ldr	r3, .L29+4
	ldr	r3, [r3]
	ldr	r2, [fp, #-48]
	cmp	r2, r3
	bne	.L17
	ldr	r3, .L29+8
	mov	r2, #1
	strb	r2, [r3]
	mov	r3, #0
	str	r3, [fp, #-44]
	b	.L18
.L21:
	mov	r3, #0
	str	r3, [fp, #-40]
	b	.L19
.L20:
	ldr	r1, .L29+12
	ldr	r2, [fp, #-44]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-40]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	mov	r1, r3
	ldr	r0, .L29+16
	bl	printf
	ldr	r3, [fp, #-40]
	add	r3, r3, #1
	str	r3, [fp, #-40]
.L19:
	ldr	r3, .L29+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-40]
	cmp	r2, r3
	blt	.L20
	ldr	r0, .L29+24
	bl	puts
	ldr	r3, [fp, #-44]
	add	r3, r3, #1
	str	r3, [fp, #-44]
.L18:
	ldr	r3, .L29+20
	ldr	r3, [r3]
	ldr	r2, [fp, #-44]
	cmp	r2, r3
	blt	.L21
	b	.L16
.L17:
	bl	F
	str	r0, [fp, #-32]
	ldr	r3, [fp, #-32]
	cmn	r3, #1
	beq	.L27
	ldr	r1, .L29+28
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r3, [r3]
	str	r3, [fp, #-28]
	ldr	r1, .L29+28
	ldr	r2, [fp, #-32]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #4
	ldr	r3, [r3]
	str	r3, [fp, #-24]
	ldr	r2, .L29+32
	ldr	r3, [fp, #-28]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-20]
	ldr	r2, .L29+32
	ldr	r3, [fp, #-24]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-16]
	ldr	r2, .L29+36
	ldr	r3, [fp, #-28]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r1, .L29+40
	ldr	r3, [fp, #-24]
	ldr	r3, [r1, r3, lsl #2]
	orr	r1, r2, r3
	ldr	r0, .L29+44
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r3, r2
	ldr	r3, [r0, r3, lsl #2]
	orr	r3, r1, r3
	mvn	r3, r3
	lsl	r3, r3, #23
	lsr	r3, r3, #23
	str	r3, [fp, #-36]
	b	.L24
.L26:
	ldr	r3, [fp, #-36]
	rsb	r3, r3, #0
	ldr	r2, [fp, #-36]
	and	r3, r3, r2
	str	r3, [fp, #-12]
	ldr	r2, .L29+48
	ldr	r3, [fp, #-12]
	ldr	r3, [r2, r3, lsl #2]
	str	r3, [fp, #-8]
	ldr	r3, [fp, #-8]
	add	r1, r3, #1
	ldr	r0, .L29+12
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-24]
	add	r3, r3, r2
	str	r1, [r0, r3, lsl #2]
	ldr	r2, .L29+36
	ldr	r3, [fp, #-28]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	orr	r2, r2, r3
	ldr	r1, .L29+36
	ldr	r3, [fp, #-28]
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L29+40
	ldr	r3, [fp, #-24]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	orr	r2, r2, r3
	ldr	r1, .L29+40
	ldr	r3, [fp, #-24]
	str	r2, [r1, r3, lsl #2]
	ldr	r1, .L29+44
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r3, r2
	ldr	r2, [r1, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	orr	r1, r2, r3
	ldr	r0, .L29+44
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r3, r2
	str	r1, [r0, r3, lsl #2]
	ldr	r3, [fp, #-48]
	add	r3, r3, #1
	mov	r0, r3
	bl	backtrack
	ldr	r1, .L29+12
	ldr	r2, [fp, #-28]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-24]
	add	r3, r3, r2
	mov	r2, #0
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L29+36
	ldr	r3, [fp, #-28]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	mvn	r3, r3
	and	r2, r2, r3
	ldr	r1, .L29+36
	ldr	r3, [fp, #-28]
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L29+40
	ldr	r3, [fp, #-24]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	mvn	r3, r3
	and	r2, r2, r3
	ldr	r1, .L29+40
	ldr	r3, [fp, #-24]
	str	r2, [r1, r3, lsl #2]
	ldr	r1, .L29+44
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r3, r2
	ldr	r2, [r1, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-8]
	lsl	r3, r1, r3
	mvn	r3, r3
	and	r1, r2, r3
	ldr	r0, .L29+44
	ldr	r2, [fp, #-20]
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	ldr	r2, [fp, #-16]
	add	r3, r3, r2
	str	r1, [r0, r3, lsl #2]
	ldr	r3, .L29+8
	ldrb	r3, [r3]	@ zero_extendqisi2
	cmp	r3, #0
	bne	.L28
	ldr	r2, [fp, #-36]
	ldr	r3, [fp, #-12]
	eor	r3, r3, r2
	str	r3, [fp, #-36]
.L24:
	ldr	r3, [fp, #-36]
	cmp	r3, #0
	bne	.L26
	b	.L16
.L27:
	nop
	b	.L16
.L28:
	nop
.L16:
	sub	sp, fp, #4
	@ sp needed
	pop	{fp, pc}
.L30:
	.align	2
.L29:
	.word	steps
	.word	len
	.word	flag
	.word	ar
	.word	.LC0
	.word	n
	.word	.LC1
	.word	adj
	.word	dv
	.word	row
	.word	col
	.word	box
	.word	T
	.size	backtrack, .-backtrack
	.section	.rodata
	.align	2
.LC2:
	.ascii	"%d\000"
	.align	2
.LC3:
	.ascii	"No solution\000"
	.text
	.align	2
	.global	main
	.syntax unified
	.arm
	.fpu softvfp
	.type	main, %function
main:
	@ args = 0, pretend = 0, frame = 16
	@ frame_needed = 1, uses_anonymous_args = 0
	push	{r4, fp, lr}
	add	fp, sp, #8
	sub	sp, sp, #20
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L32
.L33:
	mov	r2, #1
	ldr	r3, [fp, #-24]
	lsl	r3, r2, r3
	ldr	r1, .L49
	ldr	r2, [fp, #-24]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-24]
	ldr	r2, .L49+4
	smull	r1, r2, r3, r2
	asr	r3, r3, #31
	sub	r2, r2, r3
	ldr	r1, .L49+8
	ldr	r3, [fp, #-24]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L32:
	ldr	r3, [fp, #-24]
	cmp	r3, #9
	ble	.L33
	ldr	r1, .L49+12
	ldr	r0, .L49+16
	bl	__isoc99_scanf
	b	.L34
.L46:
	mov	r2, #324
	mov	r1, #0
	ldr	r0, .L49+20
	bl	memset
	mov	r2, #36
	mov	r1, #0
	ldr	r0, .L49+24
	bl	memset
	mov	r2, #36
	mov	r1, #0
	ldr	r0, .L49+28
	bl	memset
	mov	r2, #36
	mov	r1, #0
	ldr	r0, .L49+32
	bl	memset
	mov	r3, #0
	str	r3, [fp, #-24]
	b	.L35
.L40:
	mov	r3, #0
	str	r3, [fp, #-20]
	b	.L36
.L39:
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	lsl	r3, r3, #2
	ldr	r2, .L49+20
	add	r3, r3, r2
	mov	r1, r3
	ldr	r0, .L49+16
	bl	__isoc99_scanf
	ldr	r1, .L49+20
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	cmp	r3, #0
	beq	.L48
	ldr	r1, .L49+20
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	sub	r3, r3, #1
	str	r3, [fp, #-16]
	ldr	r2, .L49+24
	ldr	r3, [fp, #-24]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-16]
	lsl	r3, r1, r3
	orr	r2, r2, r3
	ldr	r1, .L49+24
	ldr	r3, [fp, #-24]
	str	r2, [r1, r3, lsl #2]
	ldr	r2, .L49+28
	ldr	r3, [fp, #-20]
	ldr	r2, [r2, r3, lsl #2]
	mov	r1, #1
	ldr	r3, [fp, #-16]
	lsl	r3, r1, r3
	orr	r2, r2, r3
	ldr	r1, .L49+28
	ldr	r3, [fp, #-20]
	str	r2, [r1, r3, lsl #2]
	ldr	r3, [fp, #-24]
	ldr	r2, .L49+4
	smull	r1, r2, r3, r2
	asr	r3, r3, #31
	sub	r2, r2, r3
	ldr	r3, [fp, #-20]
	ldr	r1, .L49+4
	smull	r0, r1, r3, r1
	asr	r3, r3, #31
	sub	r1, r1, r3
	ldr	r0, .L49+32
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, r1
	ldr	r0, [r0, r3, lsl #2]
	mov	ip, #1
	ldr	r3, [fp, #-16]
	lsl	r3, ip, r3
	orr	r0, r0, r3
	ldr	ip, .L49+32
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, r1
	str	r0, [ip, r3, lsl #2]
	b	.L38
.L48:
	nop
.L38:
	ldr	r3, [fp, #-20]
	add	r3, r3, #1
	str	r3, [fp, #-20]
.L36:
	ldr	r3, .L49+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-20]
	cmp	r2, r3
	blt	.L39
	ldr	r3, [fp, #-24]
	add	r3, r3, #1
	str	r3, [fp, #-24]
.L35:
	ldr	r3, .L49+36
	ldr	r3, [r3]
	ldr	r2, [fp, #-24]
	cmp	r2, r3
	blt	.L40
	ldr	r3, .L49+40
	mov	r2, #0
	str	r2, [r3]
	ldr	r3, .L49+36
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
	b	.L41
.L45:
	ldr	r3, .L49+36
	ldr	r3, [r3]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
	b	.L42
.L44:
	ldr	r1, .L49+20
	ldr	r2, [fp, #-24]
	mov	r3, r2
	lsl	r3, r3, #3
	add	r3, r3, r2
	ldr	r2, [fp, #-20]
	add	r3, r3, r2
	ldr	r3, [r1, r3, lsl #2]
	cmp	r3, #0
	bne	.L43
	ldr	r2, .L49+24
	ldr	r3, [fp, #-24]
	ldr	r2, [r2, r3, lsl #2]
	ldr	r1, .L49+28
	ldr	r3, [fp, #-20]
	ldr	r3, [r1, r3, lsl #2]
	orr	r1, r2, r3
	ldr	r3, [fp, #-24]
	ldr	r2, .L49+4
	smull	r0, r2, r3, r2
	asr	r3, r3, #31
	sub	r2, r2, r3
	ldr	r3, [fp, #-20]
	ldr	r0, .L49+4
	smull	ip, r0, r3, r0
	asr	r3, r3, #31
	sub	r0, r0, r3
	ldr	ip, .L49+32
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	add	r3, r3, r0
	ldr	r3, [ip, r3, lsl #2]
	orr	r3, r1, r3
	str	r3, [fp, #-16]
	ldr	r3, .L49+40
	ldr	r2, [r3]
	ldr	r1, .L49+44
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	ldr	r2, [fp, #-24]
	str	r2, [r3]
	ldr	r3, .L49+40
	ldr	r2, [r3]
	ldr	r1, .L49+44
	mov	r3, r2
	lsl	r3, r3, #1
	add	r3, r3, r2
	lsl	r3, r3, #2
	add	r3, r1, r3
	add	r3, r3, #4
	ldr	r2, [fp, #-20]
	str	r2, [r3]
	ldr	r2, [fp, #-16]
	ldr	r3, .L49+40
	ldr	r4, [r3]
	add	r3, r4, #1
	ldr	r1, .L49+40
	str	r3, [r1]
	mov	r0, r2
	bl	__popcountsi2
	mov	r3, r0
	mov	r1, r3
	ldr	r2, .L49+44
	mov	r3, r4
	lsl	r3, r3, #1
	add	r3, r3, r4
	lsl	r3, r3, #2
	add	r3, r2, r3
	add	r3, r3, #8
	str	r1, [r3]
.L43:
	ldr	r3, [fp, #-20]
	sub	r3, r3, #1
	str	r3, [fp, #-20]
.L42:
	ldr	r3, [fp, #-20]
	cmp	r3, #0
	bge	.L44
	ldr	r3, [fp, #-24]
	sub	r3, r3, #1
	str	r3, [fp, #-24]
.L41:
	ldr	r3, [fp, #-24]
	cmp	r3, #0
	bge	.L45
	ldr	r3, .L49+40
	ldr	r3, [r3]
	mov	r1, r3
	ldr	r3, .L49+48
	mov	r2, #12
	ldr	r0, .L49+44
	bl	qsort
	ldr	r3, .L49+52
	mov	r2, #0
	strb	r2, [r3]
	ldr	r3, .L49+56
	mov	r2, #0
	str	r2, [r3]
	mov	r0, #0
	bl	backtrack
	ldr	r3, .L49+52
	ldrb	r3, [r3]	@ zero_extendqisi2
	eor	r3, r3, #1
	and	r3, r3, #255
	cmp	r3, #0
	beq	.L34
	ldr	r0, .L49+60
	bl	puts
.L34:
	ldr	r3, .L49+12
	ldr	r3, [r3]
	sub	r2, r3, #1
	ldr	r1, .L49+12
	str	r2, [r1]
	cmp	r3, #0
	bne	.L46
	mov	r3, #0
	mov	r0, r3
	sub	sp, fp, #8
	@ sp needed
	pop	{r4, fp, pc}
.L50:
	.align	2
.L49:
	.word	T
	.word	1431655766
	.word	dv
	.word	t
	.word	.LC2
	.word	ar
	.word	row
	.word	col
	.word	box
	.word	n
	.word	len
	.word	adj
	.word	compare
	.word	flag
	.word	steps
	.word	.LC3
	.size	main, .-main
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
