// File: czinn[P]homeworlds/main.cc
// Function: main
int main() {
  std::map<int, std::string> system_names;
  Game *g = read_game(std::cin, system_names);

  if (g->winner() != 0) {
    print_game(std::cout, *g, system_names);
    return 0;
  }

  Negamax nm(g);
  std::vector<Action> actions;
  for (int i = 1; i <= 2; i++) {
    actions = nm.get_actions(i);
  }
  std::vector<std::string> new_names({"Sirius","AlphaCentauri","Mars","Venus"});
  auto new_names_it = new_names.begin();
  for (Action& a : actions) {
    if (a.type == DISCOVER) {
      system_names.emplace(a.system_target, *new_names_it);
    }
    print_action(std::cout, a, system_names, new_names_it);
    std::cout << std::endl;
    g->perform_action(a);
  }

  delete g;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movl $0x0, -0x4(%rbp)
leaq -0x38(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x22500
movq -0x1c8(%rbp), %rsi
movq 0x14100(%rip), %rdi     # 0x35fe0
callq 0x1e770
movq %rax, -0x1c0(%rbp)
jmp 0x21eee
movq -0x1c0(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rdi
callq 0x3c80
movl %eax, -0x1cc(%rbp)
jmp 0x21f0a
movl -0x1cc(%rbp), %eax
cmpl $0x0, %eax
je 0x21f4f
movq -0x40(%rbp), %rsi
movq 0x140b0(%rip), %rdi     # 0x35fd0
leaq -0x38(%rbp), %rdx
callq 0x1e3f0
jmp 0x21f2b
movl $0x0, -0x4(%rbp)
movl $0x1, -0x50(%rbp)
jmp 0x224bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x224e8
movq -0x40(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x135d0
jmp 0x21f61
leaq -0xa8(%rbp), %rdi
callq 0x16d30
movl $0x1, -0xac(%rbp)
cmpl $0x2, -0xac(%rbp)
jg 0x21fdc
movl -0xac(%rbp), %edx
leaq -0xc8(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x13600
jmp 0x21f9b
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x22520
leaq -0xc8(%rbp), %rdi
callq 0x16bb0
movl -0xac(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xac(%rbp)
jmp 0x21f77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x224d0
movb $0x1, -0x17d(%rbp)
leaq -0x170(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x179(%rbp), %rdi
movq %rdi, -0x1d8(%rbp)
callq 0x33d0
movq -0x1e0(%rbp), %rdi
movq -0x1d8(%rbp), %rdx
leaq 0x22ba(%rip), %rsi      # 0x242da
callq 0x8d40
jmp 0x22027
leaq -0x150(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x17a(%rbp), %rdi
movq %rdi, -0x1e8(%rbp)
callq 0x33d0
movq -0x1f0(%rbp), %rdi
movq -0x1e8(%rbp), %rdx
leaq 0x227d(%rip), %rsi      # 0x242e1
callq 0x8d40
jmp 0x2206b
leaq -0x130(%rbp), %rax
movq %rax, -0x200(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x17b(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x33d0
movq -0x200(%rbp), %rdi
movq -0x1f8(%rbp), %rdx
leaq 0x2247(%rip), %rsi      # 0x242ef
callq 0x8d40
jmp 0x220af
leaq -0x110(%rbp), %rax
movq %rax, -0x210(%rbp)
movq %rax, -0x178(%rbp)
leaq -0x17c(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x33d0
movq -0x210(%rbp), %rdi
movq -0x208(%rbp), %rdx
leaq 0x2208(%rip), %rsi      # 0x242f4
callq 0x8d40
jmp 0x220f3
movb $0x0, -0x17d(%rbp)
leaq -0x170(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq $0x4, -0xe8(%rbp)
leaq -0x17e(%rbp), %rdi
movq %rdi, -0x218(%rbp)
callq 0x22550
movq -0x218(%rbp), %rcx
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
leaq -0xe0(%rbp), %rdi
callq 0x22570
jmp 0x22149
leaq -0x17e(%rbp), %rdi
callq 0x225f0
leaq -0x170(%rbp), %rax
movq %rax, -0x228(%rbp)
addq $0x80, %rax
movq %rax, -0x220(%rbp)
movq -0x220(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x230(%rbp)
callq 0x3160
movq -0x228(%rbp), %rcx
movq -0x230(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x220(%rbp)
jne 0x22170
leaq -0x17c(%rbp), %rdi
callq 0x3280
leaq -0x17b(%rbp), %rdi
callq 0x3280
leaq -0x17a(%rbp), %rdi
callq 0x3280
leaq -0x179(%rbp), %rdi
callq 0x3280
leaq -0xe0(%rbp), %rdi
callq 0x22610
movq %rax, -0x188(%rbp)
leaq -0xa8(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x190(%rbp), %rdi
callq 0xd2a0
movq %rax, -0x198(%rbp)
movq -0x190(%rbp), %rdi
callq 0x9270
movq %rax, -0x1a0(%rbp)
leaq -0x198(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
callq 0x16d50
testb $0x1, %al
jne 0x22234
jmp 0x22462
leaq -0x198(%rbp), %rdi
callq 0xd7b0
movq %rax, -0x1a8(%rbp)
movq -0x1a8(%rbp), %rax
cmpl $0x2, 0x4(%rax)
jne 0x22408
movq -0x1a8(%rbp), %rax
addq $0x14, %rax
movq %rax, -0x248(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x1f320
movq -0x248(%rbp), %rsi
movq %rax, %rdx
leaq -0x38(%rbp), %rdi
callq 0x1f3e0
movb %dl, -0x239(%rbp)
movq %rax, -0x238(%rbp)
jmp 0x22298
movb -0x239(%rbp), %al
movq -0x238(%rbp), %rcx
movq %rcx, -0x1b8(%rbp)
movb %al, -0x1b0(%rbp)
jmp 0x22408
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x22382
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x22376
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2236a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x2235e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x17e(%rbp), %rdi
callq 0x225f0
leaq -0x170(%rbp), %rax
movq %rax, -0x258(%rbp)
addq $0x80, %rax
movq %rax, -0x250(%rbp)
movq -0x250(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x260(%rbp)
callq 0x3160
movq -0x258(%rbp), %rcx
movq -0x260(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x250(%rbp)
jne 0x2232b
jmp 0x2235e
leaq -0x17c(%rbp), %rdi
callq 0x3280
leaq -0x17b(%rbp), %rdi
callq 0x3280
leaq -0x17a(%rbp), %rdi
callq 0x3280
leaq -0x179(%rbp), %rdi
callq 0x3280
testb $0x1, -0x17d(%rbp)
jne 0x22399
jmp 0x223e6
movq -0x178(%rbp), %rax
leaq -0x170(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x268(%rbp)
je 0x223e4
movq -0x268(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x270(%rbp)
callq 0x3160
movq -0x270(%rbp), %rax
leaq -0x170(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x268(%rbp)
jne 0x223b3
jmp 0x223e6
jmp 0x224d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x22640
jmp 0x224d0
movq -0x1a8(%rbp), %rsi
movq 0x13bba(%rip), %rdi     # 0x35fd0
leaq -0x38(%rbp), %rdx
leaq -0x188(%rbp), %rcx
callq 0x1e080
jmp 0x22428
movq 0x13ba1(%rip), %rdi     # 0x35fd0
movq 0x13b7a(%rip), %rsi     # 0x35fb0
callq 0x3260
jmp 0x2243d
movq -0x40(%rbp), %rdi
movq -0x1a8(%rbp), %rsi
callq 0x5900
jmp 0x2244f
jmp 0x22451
leaq -0x198(%rbp), %rdi
callq 0x16fc0
jmp 0x22218
movq -0x40(%rbp), %rax
movq %rax, -0x278(%rbp)
cmpq $0x0, %rax
je 0x22490
movq -0x278(%rbp), %rdi
callq 0x16800
movq -0x278(%rbp), %rdi
movl $0x68, %esi
callq 0x3240
leaq -0xe0(%rbp), %rdi
callq 0x22640
leaq -0xa8(%rbp), %rdi
callq 0x16bb0
leaq -0x90(%rbp), %rdi
callq 0x226a0
movl $0x0, -0x50(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x226c0
movl -0x4(%rbp), %eax
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
leaq -0xa8(%rbp), %rdi
callq 0x16bb0
leaq -0x90(%rbp), %rdi
callq 0x226a0
leaq -0x38(%rbp), %rdi
callq 0x226c0
movq -0x48(%rbp), %rdi
callq 0x33c0
nopw (%rax,%rax)