// File: kdungs[P]codecon/src/matching.cc
// Function: main
int main() {
  auto k = 0u;
  std::cin >> k;
  if (k == 0) { return EXIT_FAILURE; }

  auto lines = std::vector<std::string>{};
  auto iit = std::istream_iterator<std::string>{std::cin};
  auto eit = std::istream_iterator<std::string>{};
  std::copy(iit, eit, std::back_inserter(lines));

  auto originalRows = std::vector<Row>(k);
  auto modifiedRows = std::vector<Row>(k);
  std::transform(std::begin(lines), std::begin(lines) + k,
                std::begin(originalRows), parseRow);
  std::transform(std::begin(lines) + k, std::end(lines),
                std::begin(modifiedRows), parseRow);

  const auto ps = matchingPositions(originalRows, modifiedRows);
  for (auto i = 0u; i < k; ++i) {
    std::cout << i << ',' << ps[i] << '\n';
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x240, %rsp            # imm = 0x240
movl $0x0, -0x4(%rbp)
movl $0x0, -0x8(%rbp)
movq 0xb4f0(%rip), %rdi      # 0xdfe0
leaq -0x8(%rbp), %rsi
callq 0x2040
cmpl $0x0, -0x8(%rbp)
jne 0x2b0b
movl $0x1, -0x4(%rbp)
jmp 0x2f90
xorps %xmm0, %xmm0
movaps %xmm0, -0x20(%rbp)
movq $0x0, -0x10(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x4a70
movq 0xb4b6(%rip), %rsi      # 0xdfe0
leaq -0x50(%rbp), %rdi
callq 0x4a90
jmp 0x2b35
leaq -0x90(%rbp), %rdi
callq 0x4af0
jmp 0x2b43
leaq -0xc0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x4ca0
jmp 0x2b55
leaq -0xf0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x4ca0
jmp 0x2b6a
leaq -0x20(%rbp), %rdi
callq 0x4cf0
movq %rax, -0x1b8(%rbp)
jmp 0x2b7c
movq -0x1b8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rdx
leaq -0xc0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x4b30
movq %rax, -0x1c0(%rbp)
jmp 0x2bad
movq -0x1c0(%rbp), %rax
movq %rax, -0x100(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x4d20
leaq -0xc0(%rbp), %rdi
callq 0x4d20
movl -0x8(%rbp), %eax
movq %rax, -0x1d0(%rbp)
leaq -0x119(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x4d40
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
leaq -0x118(%rbp), %rdi
callq 0x4d60
jmp 0x2c0c
leaq -0x119(%rbp), %rdi
callq 0x4dd0
movl -0x8(%rbp), %eax
movq %rax, -0x1e0(%rbp)
leaq -0x139(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x4d40
movq -0x1e0(%rbp), %rsi
movq -0x1d8(%rbp), %rdx
leaq -0x138(%rbp), %rdi
callq 0x4d60
jmp 0x2c51
leaq -0x139(%rbp), %rdi
callq 0x4dd0
leaq -0x20(%rbp), %rdi
callq 0x4e80
movq %rax, -0x1e8(%rbp)
jmp 0x2c6f
movq -0x1e8(%rbp), %rax
movq %rax, -0x148(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x4e80
movq %rax, -0x1f0(%rbp)
jmp 0x2c8f
movq -0x1f0(%rbp), %rax
movq %rax, -0x158(%rbp)
movl -0x8(%rbp), %eax
movl %eax, %esi
leaq -0x158(%rbp), %rdi
callq 0x4eb0
movq %rax, -0x150(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x4ef0
movq %rax, -0x1f8(%rbp)
jmp 0x2cca
movq -0x1f8(%rbp), %rax
movq %rax, -0x160(%rbp)
movq -0x148(%rbp), %rdi
movq -0x150(%rbp), %rsi
movq -0x160(%rbp), %rdx
leaq -0x6f4(%rip), %rcx      # 0x2600
callq 0x4df0
movq %rax, -0x200(%rbp)
jmp 0x2d02
movq -0x200(%rbp), %rax
movq %rax, -0x168(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x4e80
movq %rax, -0x208(%rbp)
jmp 0x2d22
movq -0x208(%rbp), %rax
movq %rax, -0x178(%rbp)
movl -0x8(%rbp), %eax
movl %eax, %esi
leaq -0x178(%rbp), %rdi
callq 0x4eb0
movq %rax, -0x170(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x4f20
movq %rax, -0x210(%rbp)
jmp 0x2d5a
movq -0x210(%rbp), %rax
movq %rax, -0x180(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x4ef0
movq %rax, -0x218(%rbp)
jmp 0x2d7d
movq -0x218(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x170(%rbp), %rdi
movq -0x180(%rbp), %rsi
movq -0x188(%rbp), %rdx
leaq -0x7a7(%rip), %rcx      # 0x2600
callq 0x4df0
movq %rax, -0x220(%rbp)
jmp 0x2db5
movq -0x220(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x1a8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x138(%rbp), %rdx
callq 0x27b0
jmp 0x2ddf
movl $0x0, -0x1ac(%rbp)
movl -0x1ac(%rbp), %eax
cmpl -0x8(%rbp), %eax
jae 0x2f4e
movl -0x1ac(%rbp), %esi
movq 0xb1cb(%rip), %rdi      # 0xdfd0
callq 0x21a0
movq %rax, -0x228(%rbp)
jmp 0x2e13
movq -0x228(%rbp), %rdi
movl $0x2c, %esi
callq 0x2170
movq %rax, -0x230(%rbp)
jmp 0x2e2d
movl -0x1ac(%rbp), %eax
movl %eax, %esi
leaq -0x1a8(%rbp), %rdi
callq 0x4f50
movq -0x230(%rbp), %rdi
movq (%rax), %rsi
callq 0x2050
movq %rax, -0x238(%rbp)
jmp 0x2e59
movq -0x238(%rbp), %rdi
movl $0xa, %esi
callq 0x2170
jmp 0x2e6c
jmp 0x2e6e
movl -0x1ac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1ac(%rbp)
jmp 0x2de9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2fc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2fc0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2fb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2edb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x4d20
leaq -0xc0(%rbp), %rdi
callq 0x4d20
jmp 0x2fb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x119(%rbp), %rdi
callq 0x4dd0
jmp 0x2fb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x139(%rbp), %rdi
callq 0x4dd0
jmp 0x2fa8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
jmp 0x2f9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x58(%rbp)
movl %eax, -0x5c(%rbp)
leaq -0x1a8(%rbp), %rdi
callq 0x4a10
jmp 0x2f9c
leaq -0x1a8(%rbp), %rdi
callq 0x4a10
leaq -0x138(%rbp), %rdi
callq 0x4f70
leaq -0x118(%rbp), %rdi
callq 0x4f70
leaq -0x90(%rbp), %rdi
callq 0x4d20
leaq -0x50(%rbp), %rdi
callq 0x4d20
leaq -0x20(%rbp), %rdi
callq 0x4fd0
movl -0x4(%rbp), %eax
addq $0x240, %rsp            # imm = 0x240
popq %rbp
retq
leaq -0x138(%rbp), %rdi
callq 0x4f70
leaq -0x118(%rbp), %rdi
callq 0x4f70
leaq -0x90(%rbp), %rdi
callq 0x4d20
leaq -0x50(%rbp), %rdi
callq 0x4d20
leaq -0x20(%rbp), %rdi
callq 0x4fd0
movq -0x58(%rbp), %rdi
callq 0x2230
nopl (%rax,%rax)