#acl1f. [acl1_f]Center Rearranging

[acl1_f]Center Rearranging

题目描述

给定长度为 3N3N 的整数序列 AABB。这两个序列中都包含了 1,2,...,N1, 2, ..., N 的三个副本。换句话说,AABB 都是由 (1,1,1,2,2,2,...,N,N,N)(1, 1, 1, 2, 2, 2, ..., N, N, N) 的排列构成的。

Tak 可以对序列 AA 执行以下操作任意多次:

  • 1,2,...,N1, 2, ..., N 中选择一个值,并将其命名为 xxAA 中恰好包含三个副本的值为 xx。移除这三个值中间的那个元素。之后,将 xx 添加到 AA 的开头或结尾。

判断他是否可以将序列 AA 变成 BB。如果能够变成,打印出所需的最小操作次数。

约束条件

  • 1N331 \leq N \leq 33
  • AABB 都是由 (1,1,1,2,2,2,...,N,N,N)(1, 1, 1, 2, 2, 2, ..., N, N, N) 的排列构成的。
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN A1A_1 A2A_2 ... A3NA_{3N} B1B_1 B2B_2 ... B3NB_{3N}

输出

如果 Tak 可以将 AA 变成 BB,打印出所需的最小操作次数。否则,打印 1-1


样例输入 1

3
2 3 1 1 3 2 2 1 3
1 2 2 3 1 2 3 1 3

样例输出 1

4

例如,Tak 可以执行以下操作:

  • 2 3 1 1 3 2 2 1 3(初始状态)
  • 2 2 3 1 1 3 2 1 3(选择 x=2x = 2 并将其添加到开头)
  • 2 2 3 1 3 2 1 3 1(选择 x=1x = 1 并将其添加到结尾)
  • 1 2 2 3 1 3 2 3 1(选择 x=1x = 1 并将其添加到开头)
  • 1 2 2 3 1 2 3 1 3(选择 x=3x = 3 并将其添加到结尾)

样例输入 2

3
1 1 1 2 2 2 3 3 3
1 1 1 2 2 2 3 3 3

样例输出 2

0

样例输入 3

3
2 3 3 1 1 1 2 2 3
3 2 2 1 1 1 3 3 2

样例输出 3

-1

样例输入 4

8
3 6 7 5 4 8 4 1 1 3 8 7 3 8 2 4 7 5 2 2 6 5 6 1
7 5 8 1 3 6 7 5 4 8 1 3 3 8 2 4 2 6 5 6 1 4 7 2

样例输出 4

7