0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2025-02-22 22:26:36 +00:00

8903 lines
17 KiB (Stored with Git LFS)
Plaintext

1
1
0
0
1
0
0
2
1
0
0
0
0
0
0
0
0
0
2
0
2
0
0
0
0
0
0
2
0
0
2
0
0
0
1
2
2
0
1
0
0
0
2
0
1
0
0
1
0
0
0
0
1
0
1
0
2
1
0
0
1
0
0
2
1
2
0
2
2
0
2
1
0
0
0
2
1
0
2
0
0
2
0
0
0
0
2
0
2
0
0
0
2
0
0
2
2
0
0
0
1
0
0
1
2
2
0
0
2
0
0
0
0
0
2
0
0
0
0
0
0
1
1
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
2
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
2
0
2
0
0
0
0
0
0
2
0
1
0
0
0
1
2
0
0
0
0
0
1
2
0
0
0
2
0
0
0
1
0
0
2
0
0
2
0
0
0
0
1
0
0
2
0
1
0
1
0
2
2
0
0
0
0
0
0
0
0
0
1
2
2
2
2
0
0
1
0
0
0
0
1
0
0
0
0
2
0
0
0
0
0
0
0
0
0
1
0
2
0
0
0
0
0
0
2
0
0
0
0
1
0
2
0
0
0
0
0
2
0
0
2
1
0
2
1
0
0
1
0
0
0
0
2
2
2
0
2
0
0
2
1
2
1
0
2
0
0
0
0
0
0
0
2
2
0
0
1
0
2
2
0
1
0
0
0
2
0
0
0
1
1
2
2
0
2
0
0
0
2
0
0
0
0
1
0
2
0
0
0
0
1
2
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
2
0
0
0
0
2
2
0
0
0
0
1
0
0
2
1
0
1
0
0
0
0
0
2
1
0
1
0
0
2
0
0
2
2
2
1
0
2
0
0
0
2
0
1
0
0
0
1
2
0
0
0
0
1
0
2
0
1
0
2
0
1
0
0
2
2
0
0
0
2
1
0
0
0
2
0
2
0
1
0
0
1
0
0
0
1
0
0
1
2
0
0
2
1
1
0
0
0
0
0
0
2
0
0
1
0
0
1
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
2
1
0
0
2
0
2
0
1
0
0
0
0
0
0
0
0
0
1
2
0
0
0
0
1
0
1
0
0
0
0
0
2
0
0
2
0
0
0
0
0
0
2
0
0
0
0
0
0
2
0
0
0
0
2
0
0
0
0
2
0
2
0
0
1
0
0
2
0
2
0
0
0
2
1
0
0
0
0
0
0
2
2
0
1
0
0
0
2
0
0
2
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
2
1
0
0
0
2
0
0
0
2
0
2
0
0
1
0
2
0
0
1
1
2
0
0
0
0
0
2
0
1
0
0
0
1
0
0
1
0
2
0
2
0
0
0
1
1
0
0
2
0
0
1
0
0
2
0
0
0
0
0
2
0
0
0
0
1
2
2
2
0
2
0
0
0
0
0
0
0
2
0
0
0
2
0
2
0
1
0
0
0
2
0
0
0
0
0
0
0
0
0
2
2
0
1
2
0
0
0
2
1
0
0
0
0
2
0
0
0
2
2
0
0
0
0
0
0
0
2
0
2
2
0
0
0
0
1
0
2
0
0
2
0
0
0
0
2
0
1
2
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
2
1
2
2
0
0
2
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
0
2
2
0
0
2
2
0
2
2
0
1
0
1
0
0
0
0
2
0
0
0
0
2
2
0
0
2
0
0
0
1
1
2
0
0
0
0
2
0
1
0
0
2
0
2
2
0
2
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
0
0
0
0
0
0
1
0
1
1
2
2
0
0
0
0
0
0
1
1
0
2
0
0
2
2
1
0
1
0
2
1
2
0
2
2
0
0
0
2
1
0
2
1
0
0
0
0
0
0
0
2
2
0
0
0
0
0
2
0
0
0
0
1
0
0
0
0
1
2
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
2
2
0
0
0
0
0
2
2
1
2
0
2
0
2
0
0
2
0
0
0
0
0
0
0
0
0
2
0
0
0
0
1
0
2
0
0
0
0
0
2
2
2
2
1
0
1
2
0
0
0
0
0
0
0
0
0
0
0
1
2
0
2
0
1
0
0
0
1
0
2
0
2
0
0
0
0
0
2
0
0
0
0
2
0
0
0
2
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
2
0
2
1
0
0
0
0
2
2
0
0
0
0
2
0
1
2
1
2
0
2
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
2
0
1
0
0
0
0
0
0
0
2
2
0
2
1
0
0
0
0
0
0
2
0
2
0
0
2
2
0
0
0
2
0
0
0
2
0
1
2
0
0
0
0
0
2
1
0
0
0
1
2
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
2
0
0
0
0
2
2
1
0
2
0
0
0
2
1
2
0
0
2
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
2
0
0
1
0
0
2
0
0
0
1
0
1
0
0
0
0
0
0
0
0
2
2
0
2
2
0
0
0
1
0
0
0
2
0
2
2
0
0
2
0
2
0
0
0
2
0
0
0
0
0
2
2
1
2
0
0
0
2
0
0
2
0
1
2
2
0
0
0
2
0
2
0
0
2
0
0
0
0
0
0
1
0
0
0
0
2
1
0
1
0
0
0
2
0
0
0
0
1
0
1
1
2
0
0
0
2
0
0
0
2
0
0
1
2
2
0
2
0
2
0
0
0
1
2
2
0
1
1
0
1
0
0
0
0
2
0
0
0
0
0
0
0
0
1
0
1
2
0
2
2
2
2
0
2
1
0
0
1
1
0
0
0
0
1
0
2
2
1
2
0
0
2
0
0
0
1
1
2
0
2
2
1
1
0
0
0
2
0
0
2
0
0
0
1
2
0
0
2
0
0
2
0
1
0
0
0
0
0
1
0
2
0
0
0
0
0
0
0
0
0
0
0
2
0
0
2
0
0
0
0
0
2
0
0
0
0
0
0
0
2
2
1
2
2
2
0
0
0
0
0
1
0
0
0
0
0
1
0
2
0
0
1
0
2
0
0
2
0
0
0
0
0
0
2
2
0
2
0
2
2
0
2
1
0
0
0
0
1
0
2
1
2
1
0
0
0
0
1
2
0
2
0
2
1
0
2
2
0
0
0
0
2
0
2
0
0
2
2
2
0
0
0
0
1
0
2
0
0
0
0
2
0
0
0
0
0
2
0
0
0
0
0
0
0
2
2
0
0
0
1
0
1
2
0
0
0
0
1
1
0
2
0
0
2
0
2
0
0
1
0
1
0
0
0
0
0
0
0
2
2
2
0
0
0
2
0
2
1
1
0
0
2
0
2
0
2
0
0
2
0
0
0
0
2
0
1
1
0
0
0
0
2
0
0
0
0
0
0
0
0
0
1
0
2
0
0
2
0
2
0
0
0
0
2
0
0
0
0
0
2
2
0
2
0
0
0
0
0
0
0
0
0
2
2
2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
1
0
0
0
1
0
0
0
0
2
0
0
0
0
2
2
1
2
0
1
0
0
2
0
2
0
0
2
0
0
2
0
2
0
0
0
2
0
2
1
0
1
0
1
0
0
0
2
0
0
0
0
0
0
1
0
0
0
0
2
0
1
0
0
2
0
1
0
0
2
0
0
0
0
2
0
0
0
2
0
0
0
2
2
2
0
2
0
2
0
0
0
0
0
0
0
2
0
0
2
0
1
0
1
2
0
0
2
0
0
0
2
0
0
2
1
0
0
0
0
2
2
0
0
0
2
0
0
0
2
0
0
2
2
0
0
0
0
0
0
1
0
0
2
0
2
0
0
0
0
0
0
1
1
0
2
0
2
0
0
0
0
0
0
1
0
0
0
0
2
0
0
0
0
0
0
2
0
2
2
0
0
2
0
0
0
0
0
0
0
2
0
0
2
0
2
0
0
0
0
1
0
2
0
0
0
1
0
0
2
0
0
0
0
0
1
0
2
0
0
2
0
0
2
0
0
0
1
1
0
0
0
2
0
0
0
0
0
0
0
0
0
0
2
1
2
0
0
0
0
0
1
0
0
0
2
0
1
0
0
2
0
0
2
2
2
0
0
2
0
1
2
2
2
0
2
0
0
0
0
1
2
0
0
0
2
0
0
2
0
0
0
0
1
1
2
0
2
0
2
0
0
0
1
0
0
2
0
0
0
2
0
0
2
2
0
0
0
0
2
2
0
0
0
0
1
0
0
0
2
0
0
0
1
0
1
0
0
0
2
0
0
0
2
1
0
2
0
0
0
0
1
0
1
2
2
2
0
2
2
0
0
1
2
0
0
0
0
0
1
0
2
0
0
0
2
0
1
0
2
0
0
0
0
1
0
0
0
0
0
2
0
0
0
2
2
0
0
0
2
0
0
2
0
0
2
0
0
0
0
1
1
0
0
2
1
2
0
0
2
2
0
1
2
0
0
0
2
0
0
0
0
2
0
0
0
0
0
2
0
0
2
0
0
0
1
0
2
0
1
0
0
0
2
2
0
1
0
0
0
0
0
0
2
1
0
2
2
1
0
0
2
0
1
0
0
0
0
0
0
0
2
0
0
0
2
0
1
2
2
0
0
2
1
0
1
1
2
0
2
0
0
0
2
0
0
0
0
0
2
0
0
0
2
0
2
0
0
0
0
0
0
2
0
2
0
0
0
1
0
2
0
0
0
2
0
0
0
0
2
2
1
0
1
2
2
0
0
2
2
0
1
0
2
0
0
0
0
0
2
0
2
2
1
2
1
1
0
0
0
1
1
0
0
0
0
1
2
0
0
2
0
0
0
1
0
0
0
2
2
0
1
2
2
0
0
0
0
2
0
0
2
0
0
1
0
2
0
0
0
0
0
0
0
0
2
1
0
2
0
0
0
2
0
2
0
0
0
0
0
0
2
0
1
0
2
0
0
2
0
2
2
0
2
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
0
2
0
0
2
0
0
0
0
2
0
0
2
0
0
2
0
0
0
0
0
1
0
0
0
0
0
1
2
1
0
2
0
2
0
2
0
0
1
0
2
0
0
0
0
0
1
2
0
0
2
2
2
0
1
0
1
0
0
0
0
0
0
0
0
0
1
2
0
0
2
0
0
0
0
2
0
0
0
0
0
1
0
0
0
2
0
0
0
0
0
0
0
2
0
2
0
2
0
0
0
0
0
1
2
0
0
0
0
0
1
0
0
2
2
0
2
0
2
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
2
0
0
1
0
0
0
0
2
0
0
1
2
0
0
0
0
0
0
0
2
0
0
2
0
0
0
0
0
2
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
2
1
1
0
0
0
0
0
1
0
0
2
1
2
0
0
0
2
0
0
1
0
0
2
1
0
2
2
2
0
0
2
0
0
0
0
0
0
0
0
2
0
0
2
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
1
0
0
2
2
0
0
1
1
0
0
1
0
0
0
2
0
2
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
1
0
0
1
2
2
2
0
0
0
0
0
0
0
2
2
0
0
0
0
0
1
2
0
0
0
0
2
0
0
0
2
0
0
0
0
0
1
2
0
0
0
1
0
2
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
2
0
0
0
1
0
2
0
0
0
1
2
2
0
0
0
0
2
0
1
0
0
0
0
0
2
0
0
0
2
2
0
0
0
2
0
2
2
0
0
1
0
1
2
0
0
0
0
0
0
0
0
2
0
0
0
2
2
0
2
2
0
2
2
1
2
0
0
2
0
0
1
0
0
0
0
0
1
0
1
0
0
2
0
2
0
0
1
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
1
2
2
0
0
0
0
0
0
1
0
0
1
0
2
0
1
2
0
0
2
0
2
2
2
2
0
0
0
1
0
0
0
0
0
1
0
2
2
0
0
0
1
0
0
0
0
1
2
1
0
1
2
1
0
0
1
2
2
0
1
0
2
0
0
0
0
2
0
0
0
0
0
2
0
2
0
0
0
0
0
0
2
2
2
2
0
0
0
0
0
0
0
2
0
1
0
0
0
0
0
2
0
0
0
0
1
0
0
0
2
0
0
0
0
0
0
2
0
0
0
0
0
0
2
0
0
2
0
0
1
0
1
0
0
0
2
1
1
0
0
0
0
0
0
0
2
0
1
2
1
0
2
0
0
2
1
0
2
0
2
0
0
0
1
0
0
0
0
0
0
0
0
2
0
0
0
0
2
0
2
0
0
0
0
2
0
2
0
0
0
2
0
0
0
0
0
0
0
2
0
0
0
0
0
2
2
2
0
0
2
0
0
0
0
0
0
0
0
0
1
2
0
2
1
1
0
1
0
0
2
0
2
1
0
0
2
0
2
2
2
0
2
0
0
0
2
2
2
0
1
1
2
0
0
2
0
2
2
0
0
2
0
0
0
1
0
0
0
0
0
0
0
2
0
0
0
0
1
2
2
0
0
0
0
0
0
1
0
0
0
2
0
0
0
0
0
0
1
1
0
0
2
0
0
0
1
0
0
0
0
0
0
1
0
2
0
0
1
0
0
0
1
2
0
0
0
0
0
0
0
0
0
2
2
0
0
0
0
2
0
0
0
2
0
0
0
0
0
2
0
0
0
0
0
2
0
0
1
0
1
2
1
0
0
1
2
2
0
1
1
0
0
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
2
0
0
0
0
1
0
2
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
2
0
0
0
2
0
1
0
2
0
0
0
0
2
0
0
1
2
0
1
2
0
0
0
2
1
2
0
2
0
0
0
0
0
0
0
0
0
2
2
0
0
0
2
0
0
0
2
2
0
0
1
0
2
2
0
0
0
1
2
0
0
2
0
0
2
1
2
0
0
0
0
0
0
0
0
0
2
2
0
0
2
0
0
2
0
1
0
0
1
0
0
2
2
2
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
2
0
0
2
0
0
0
0
0
0
0
2
0
0
0
0
1
0
2
0
0
2
2
2
2
2
0
0
0
0
0
0
1
0
1
2
2
2
1
1
1
0
0
2
2
0
0
0
2
0
0
0
2
0
2
0
2
0
2
2
0
0
2
0
0
0
0
2
0
0
0
0
2
1
0
0
1
0
0
0
0
0
0
0
0
0
2
2
0
1
2
1
0
0
0
0
0
0
0
2
0
0
0
0
1
2
0
0
2
0
2
2
2
0
1
0
2
2
0
0
0
1
0
2
0
0
0
0
2
0
0
0
0
0
0
2
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
2
0
0
0
2
0
0
0
0
0
2
0
2
0
2
0
0
0
0
0
0
0
1
2
0
2
0
0
0
1
2
2
0
0
1
2
0
2
0
0
0
2
0
2
0
2
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
2
2
2
0
0
0
0
0
0
0
2
0
0
0
2
0
2
0
2
0
0
0
2
0
0
0
0
2
1
2
0
1
0
0
1
0
0
0
2
0
2
0
0
2
2
1
0
0
0
1
0
1
0
0
0
1
0
0
0
2
0
1
2
0
0
0
2
2
2
0
1
0
0
0
0
0
0
2
0
2
0
2
2
0
0
2
0
2
0
0
1
0
0
2
0
0
2
2
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
2
2
0
0
2
2
2
1
0
1
2
1
0
1
0
1
0
0
0
2
0
0
0
0
2
0
1
0
1
1
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
1
2
0
1
0
0
2
0
0
2
0
0
1
1
1
2
2
0
0
0
0
0
1
0
0
2
0
1
2
2
0
2
0
2
2
2
0
0
2
2
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
2
0
1
2
0
2
0
0
0
0
0
0
2
1
2
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
2
0
0
2
0
2
0
0
2
0
0
0
0
0
2
0
1
0
2
0
0
0
0
0
0
0
0
0
0
2
2
0
2
2
0
0
0
0
2
2
0
0
0
0
0
1
2
0
0
2
2
0
0
2
0
0
0
0
0
0
0
0
0
2
0
0
1
1
0
0
0
0
2
0
0
0
2
2
0
0
1
0
0
0
0
2
2
2
2
0
0
1
0
0
0
0
0
2
0
0
1
0
2
0
1
0
0
2
0
0
2
0
0
0
1
0
0
0
0
0
2
2
1
0
2
2
0
0
0
1
0
0
2
1
0
2
1
0
2
0
0
2
1
0
0
0
0
0
0
1
0
2
0
2
0
0
0
1
0
0
2
1
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
0
2
0
2
2
0
0
0
0
0
2
0
0
0
0
0
2
0
2
0
0
2
0
2
0
2
0
2
2
0
0
0
2
1
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
0
2
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
2
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
2
0
0
0
0
0
0
0
0
1
2
2
0
0
2
2
0
2
0
0
2
0
2
0
1
0
0
0
2
1
0
2
2
0
1
0
0
2
2
0
0
2
2
0
0
0
1
0
0
0
0
0
0
0
0
2
0
0
2
0
1
2
0
0
1
0
2
2
0
0
0
1
0
0
1
0
0
2
0
0
1
0
2
0
0
0
2
0
0
2
0
1
0
0
0
0
0
0
0
2
0
0
0
0
0
0
2
2
0
0
0
0
0
2
0
2
0
0
0
1
2
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
2
0
0
0
1
2
2
2
0
0
2
2
2
0
0
0
2
0
0
1
0
0
2
0
0
0
0
0
2
0
0
2
1
0
2
0
0
0
2
0
0
1
0
1
0
0
2
2
0
1
0
2
0
0
1
0
0
0
0
2
0
0
0
0
0
0
0
1
0
0
0
0
0
0
2
1
0
0
0
2
0
2
2
0
1
0
0
0
0
0
0
0
0
2
0
0
0
0
2
0
2
2
2
0
0
2
2
0
0
1
2
2
0
0
0
2
2
1
0
0
0
1
0
2
0
0
0
1
1
2
0
0
2
1
2
0
0
0
2
0
0
0
0
0
2
2
1
2
0
0
0
0
0
0
0
2
0
0
2
1
0
0
0
0
1
0
0
2
1
0
2
0
1
0
2
1
1
0
0
1
0
0
2
0
0
0
0
2
0
2
0
0
0
0
0
0
2
0
1
0
0
0
2
0
1
2
0
2
0
2
1
0
0
0
2
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
0
0
0
0
0
2
0
0
2
1
1
0
1
2
1
0
0
1
0
0
2
0
0
0
0
2
0
2
1
2
0
0
1
0
0
2
0
0
2
2
0
0
0
1
0
0
2
0
0
0
1
0
1
2
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
0
2
1
0
0
2
0
0
1
0
1
0
0
0
1
0
0
0
1
2
0
2
2
0
0
0
0
0
0
2
0
0
0
0
2
0
1
0
1
0
0
2
0
0
1
1
0
0
1
0
0
0
2
1
0
0
0
0
0
1
0
0
0
2
0
0
0
1
0
0
0
2
0
0
0
0
2
2
0
0
1
2
0
0
0
0
2
0
0
0
0
2
0
0
2
2
0
0
2
0
1
0
1
0
0
1
0
1
0
0
0
2
0
1
0
0
0
0
2
2
1
0
0
0
2
0
0
0
0
0
0
0
0
0
0
2
0
1
0
0
0
1
0
0
1
1
1
0
2
1
0
0
2
2
1
0
0
0
2
2
2
2
0
0
0
2
1
0
2
0
0
0
0
0
0
1
0
0
0
0
0
2
0
0
0
2
0
0
2
0
2
0
0
0
1
0
0
2
2
0
0
0
2
2
2
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
2
0
0
0
0
0
1
0
1
0
0
2
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
2
1
0
0
0
0
2
0
0
1
0
0
0
0
2
2
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
2
0
2
1
1
0
0
0
0
0
1
0
0
2
0
0
0
2
0
0
0
0
1
0
0
0
0
2
0
0
1
0
0
0
0
0
0
0
2
0
0
0
0
1
0
1
0
0
0
0
2
2
0
2
2
0
2
2
0
0
2
0
0
2
0
0
0
1
1
2
0
0
0
1
2
1
1
2
0
2
2
0
0
0
0
0
2
0
1
2
0
0
0
2
0
0
0
0
0
0
2
0
0
2
2
0
2
2
1
0
0
0
2
0
0
1
0
0
1
2
0
0
0
0
0
1
0
0
0
2
1
2
1
2
0
0
0
2
0
2
0
0
0
0
0
0
0
0
1
0
1
2
0
0
1
1
0
2
0
0
0
0
2
0
0
0
0
0
0
0
2
0
2
0
0
0
0
2
0
0
0
1
0
0
2
0
0
0
1
2
0
0
0
0
2
2
0
0
1
0
1
2
2
0
1
2
2
1
2
0
0
2
1
0
2
0
0
0
0
2
0
0
2
0
0
0
2
0
0
0
0
0
0
0
0
2
0
0
2
0
1
0
0
2
0
2
0
0
0
2
0
2
2
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
2
0
2
0
2
0
1
0
0
1
0
2
0
0
0
0
0
2
0
2
1
0
1
1
2
0
0
2
0
0
0
2
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
2
2
0
2
0
0
1
2
2
0
0
0
2
1
0
0
0
2
2
0
0
2
1
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
2
2
1
1
0
0
0
2
0
2
0
0
0
2
2
1
0
2
2
1
0
0
1
0
0
0
2
1
2
0
0
1
0
2
0
0
0
2
2
0
0
0
0
0
0
0
0
0
2
0
0
0
2
0
2
0
0
0
0
0
0
0
0
2
2
0
2
2
0
0
0
0
2
0
0
0
0
1
0
0
2
0
2
0
0
0
0
0
0
2
0
2
0
0
0
0
0
0
0
2
2
0
2
2
1
0
0
2
0
2
0
1
0
0
0
0
0
1
2
0
2
0
2
0
1
0
0
1
0
0
0
1
0
0
0
0
2
0
1
0
1
2
0
0
0
0
2
2
2
0
1
2
2
1
0
0
1
2
2
0
0
1
1
2
0
0
0
0
2
1
2
0
0
0
2
0
0
0
0
2
0
1
2
0
2
0
0
1
0
2
0
0
2
0
0
0
0
2
2
0
2
2
0
2
0
0
0
0
1
0
0
2
0
1
0
1
0
0
0
2
1
0
0
0
2
0
0
1
0
0
0
2
2
0
0
2
0
2
0
0
0
0
0
2
0
2
0
0
0
0
0
0
0
2
1
0
1
0
0
1
2
2
0
0
0
0
2
2
0
0
0
2
0
0
2
0
2
0
0
0
2
2
0
2
1
0
0
0
0
0
1
2
0
2
0
2
0
0
1
0
0
2
1
0
0
1
0
0
0
0
2
0
1
0
0
0
0
0
0
0
0
1
0
0
2
2
0
2
2
0
0
0
0
2
0
0
0
0
1
0
0
1
0
2
0
0
0
2
1
0
2
2
0
2
0
2
0
0
0
0
2
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
2
0
0
0
2
0
0
2
0
1
0
0
0
0
2
0
2
0
1
0
0
0
2
0
0
0
0
2
2
0
0
0
2
0
2
1
0
2
0
0
0
0
0
1
2
0
0
0
0
1
2
1
2
0
2
0
0
2
0
0
1
0
1
0
0
2
1
2
0
2
2
0
1
0
0
0
0
2
2
0
1
2
0
0
0
1
0
0
0
2
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
1
0
0
2
0
0
1
0
0
0
2
2
2
0
0
0
0
0
0
0
2
0
2
2
1
0
0
2
0
0
0
0
0
0
1
0
2
0
0
2
2
1
0
0
0
2
0
1
0
0
0
0
1
2
0
0
2
0
0
0
2
2
0
0
0
0
0
0
1
0
0
0
0
2
0
0
0
0
0
0
1
1
0
0
0
2
0
0
0
2
2
2
0
0
0
0
0
2
0
0
0
0
0
0
0
2
0
0
0
1
0
1
0
2
0
0
0
1
2
0
0
0
0
0
0
0
0
0
2
0
0
0
2
0
2
0
0
1
0
0
0
0
0
1
0
0
0
2
2
0
2
2
2
0
2
0
2
2
0
0
0
0
0
2
2
1
0
0
0
0
0
2
0
0
2
1
1
0
0
1
0
0
0
2
0
2
1
1
0
0
0
0
0
0
0
0
0
0
2
2
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
2
0
1
0
0
0
0
0
0
2
0
0
0
0
1
0
0
1
0
2
0
0
0
0
0
2
1
0
0
0
0
2
2
0
1
1
2
1
1
0
2
2
0
1
0
2
1
0
0
0
0
2
0
2
0
0
0
1
0
0
0
2
0
0
2
0
2
1
0
1
2
0
2
0
0
0
2
0
0
0
0
0
1
1
0
0
0
2
0
1
2
1
0
0
0
0
1
0
2
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
2
0
1
2
0
2
0
0
0
2
0
2
2
0
0
2
0
0
0
2
2
0
0
0
0
2
1
0
0
2
2
0
1
0
0
0
0
0
2
0
1
0
0
0
0
2
0
0
0
0
0
0
2
0
0
2
0
0
0
2
0
0
0
0
2
1
0
0
0
0
0
0
2
0
0
0
0
0
0
0
1
0
0
0
2
0
0
1
0
0
2
2
2
0
0
0
0
0
0
0
0
2
2
0
0
1
2
0
2
1
2
0
0
0
2
1
0
0
2
2
2
0
0
0
1
0
2
2
0
0
2
0
2
0
2
0
0
0
2
1
0
0
2
2
0
0
0
0
0
2
1
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
2
0
0
0
2
0
0
0
0
0
0
0
0
0
0
2
0
0
0
2
2
2
2
2
2
2
0
0
2
0
2
0
0
0
0
1
0
0
0
2
0
0
2
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
2
2
1
2
2
0
0
2
0
1
2
0
1
0
0
0
0
0
0
0
0
2
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
2
0
1
2
1
2
0
1
0
0
2
2
0
0
1
0
0
2
0
2
1
0
0
2
1
0
0
0
0
1
2
0
0
0
2
0
1
2
2
2
0
0
1
0
2
2
1
0
0
1
0
1
0
2
1
0
0
0
0
1
1
0
2
1
2
2
1
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
2
1
2
2
0
0
0
2
2
0
0
2
2
1
0
0
2
1
0
0
0
0
0
2
2
2
0
0
1
0
0
1
0
0
0
0
2
0
2
2
1
0
0
0
0
0
0
2
1
1
0
0
0
0
2
1
0
2
1
0
1
0
0
2
1
0
2
0
2
2
0
2
0
0
1
0
1
0
0
2
0
0
0
0
0
0
2
2
0
2
0
0
2
0
0
0
1
0
0
0
1
2
0
1
1
2
2
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
1
0
1
0
2
0
0
0
0
0
0
2
0
0
0
1
2
0
0
0
0
0
2
0
1
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
0
2
2
0
0
0
2
2
0
0
0
0
0
0
0
0
0
0
0
0
2
2
1
2
2
0
2
0
0
0
0
0
0
2
0
0
2
0
2
1
2
2
2
0
0
0
2
0
0
2
1
0
0
0
0
0
0
0
0
0
2
0
0
2
0
0
1
0
0
2
0
1
2
0
2
0
0
0
1
0
1
0
2
0
0
0
2
0
0
2
0
0
0
0
0
0
0
1
2
0
0
2
2
0
2
1
0
0
0
0
0
2
2
1
2
0
0
0
0
2
0
0
2
1
2
0
0
0
2
0
2
0
0
2
0
2
0
0
0
0
0
0
2
0
1
0
0
2
0
0
0
0
2
0
0
2
2
0
0
0
0
2
0
0
0
0
2
0
1
0
2
2
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
2
2
0
0
0
0
0
0
2
0
1
2
0
0
2
0
0
1
0
0
0
0
0
0
0
0
0
0
2
0
2
0
0
0
2
0
1
0
0
2
0
1
0
0
0
2
0
0
1
0
0
0
1
2
0
0
2
0
0
0
0
0
0
0
2
0
0
0
1
0
0
0
2
0
0
0
0
0
2
2
0
0
1
0
2
0
0
2
0
0
1
0
2
0
2
1
1
0
2
0
2
0
0
1
0
0
0
0
1
2
0
2
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
1
2
0
0
2
0
0
0
0
2
0
0
0
0
0
1
2
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
1
0
0
2
2
1
0
0
2
1
0
2
0
2
0
2
0
2
0
2
0
2
2
2
0
0
0
0
2
0
0
2
0
0
0
2
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
2
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
2
0
2
1
0
0
0
2
0
0
2
0
2
0
0
2
2
0
0
0
0
0
2
0
1
2
2
0
1
0
0
0
2
0
0
2
0
2
0
0
0
2
0
0
2
0
0
0
0
2
0
0
0
0
0
0
0
0
0
1
0
0
0
2
0
1
0
0
0
2
0
0
0
0
1
0
2
0
2
0
0
1
0
2
0
2
0
1
1
1
0
0
1
2
2
0
0
2
0
0
2
0
1
0
0
2
1
0
0
0
0
0
0
0
2
0
1
0
0
0
0
2
0
0
0
2
2
0
2
1
0
0
0
0
1
0
0
0
2
0
1
0
2
0
0
0
0
0
0
0
2
0
0
0
0
0
0
2
0
0
0
0
0
1
0
0
0
0
1
1
2
2
2
0
0
0
0
0
0
0
0
2
0
0
1
1
0
2
2
0
0
0
1
0
0
0
0
0
2
0
1
0
0
2
2
2
0
0
0
0
0
0
0
1
0
0
1
2
0
1
0
0
0
0
0
2
0
2
2
0
0
0
2
2
0
0
0
2
2
1
0
0
2
0
0
1
2
0
0
0
2
0
0
1
0
1
0
2
2
0
0
0
2
0
2
0
2
2
1
0
0
0
1
2
0
2
2
1
0
0
2
0
2
0
2
0
0
0
0
0
1
0
0
0
0
1
2
0
2
0
0
0
0
2
2
0
0
0
1
0
0
1
0
0
0
2
0
0
2
0
0
0
0
0
0
2
2
0
0
0
0
2
0
1
0
0
0
0
0
0
2
0
0
0
2
1
0
1
0
0
0
0
2
1
2
0
0
0
1
0
1
0
2
2
2
0
0
2
0
2
2
2
0
0
2
0
0
2
0
0
2
0
0
0
0
0
0
0
2
0
0
0
1
0
0
0
2
0
0
0
0
2
0
0
0
1
2
0
0
1
0
0
0
0
0
0
1
2
2
0
0
0
2
2
2
0
0
0
1
2
0
1
0
2
0
0
0
0
0
0
2
0
0
0
0
2
2
2
0
0
0
0
0
0
0
0
0
0
0
0
0
1
2
1
0
1
0
0
0
2
0
0
0
0
2
0
0
0
2
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
2
0
2
0
0
0
0
2
0
0
0
2
0
2
2
0
0
0
0
1
0
2
2
2
0
0
0
0
0
0
0
0
0
2
0
1
1
2
0
0
1
1
0
0
0
2
2
0
0
0
0
0
0
0
0
2
0
2
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
2
0
0
0
0
0
0
0
0
0
2
0
0
0
2
2
0
2
1
2
0
2
2
2
0
2
0
0
1
0
0
2
0
0
0
0
0
0
1
0
1
0
2
2
0
0
0
0
0
2
1
0
1
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
2
2
1
2
0
1
2
2
0
0
0
0
0
1
0
1
1
0
2
0
0
0
0
0
0
0
1
0
0
2
2
0
2
0
0
0
0
1
1
0
0
2
0
0
2
1
0
0
0
0
0
2
0
1
0
0
0
2
2
0
0
0
0
0
2
0
0
2
2
0
0
1
2
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
2
0
1
2
0
0
0
2
0
0
1
0
2
0
1
0
0
0
0
0
2
2
2
0
0
0
2
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
1
0
1
1
0
0
2
0
1
2
0
1
0
0
0
0
0
0
2
1
2
0
0
0
0
0
0
2
0
0
1
0
0
2
0
0
0
0
2
0
0
2
0
2
0
1
1
2
0
0
0
0
0
0
1
0
2
2
0
0
1
0
0
1
0
0
1
0
0
0
1
0
2
0
2
2
2
0
2
1
0
0
2
0
2
1
0
0
0
0
0
0
2
0
0
2
0
0
2
0
0
2
0
0
0
1
0
0
2
0
0
0
0
1
2
0
2
0
1
0
2
1
0
2
2
0
0
0
0
1
2
0
0
0
2
0
0
0
1
0
0
0
0
0
0
0
0
0
0
2
0
0
2
0
0
0
0
2
2
0
1
0
0
0
0
1
0
0
0
0
0
0
2
0
0
0
0
0
2
2
0
2
0
0
2
0
0
1
0
0
0
1
0
0
0
1
0
0
2
1
0
0
0
0
1
0
2
0
1
0
0
2
0
0
1
0
1
0
0
0
0
2
0
2
0
0
0
2
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
2
0
0
0
0
0
0
0
2
2
2
0
0
0
0
2
0
1
0
2
2
0
0
0
2
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
2
2
0
0
0
2
2
2
0
0
2
0
0
0
0
0
0
0
0
0
0
2
1
0
0
2
0
1
1
0
2
1
0
0
0
0
0
1
2
2
0
0
1
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
2
2
2
0
0
2
0
0
2
0
1
0
0
0
0
2
0
0
0
0
2
0
0
0
0
2
0
1
2
0
0
0
1
2
2
0
0
1
2
0
0
2
1
2
0
0
2
0
0
1
2
0
0
2
0
2
1
0
2
2
0
0
0
0
1
2
0
2
0
0
0
0
0
0
2
0
0
1
0
1
1
0
2
1
0
2
2
2
0
1
2
2
0
2
0
0
0
0
0
0
2
2
2
0
2
0
1
1
0
1
2
2
0
0
0
0
0
1
0
0
1
0
0
2
2
0
0
0
2
0
0
0
1
0
2
1
0
0
0
0
0
0
0
2
0
2
0
0
2
0
2
2
2
0
0
0
2
1
2
2
1
1
2
0
0
0
2
0
2
2
2
2
0
0
0
0
0
0
2
2
0
0
2
0
0
0
1
0
0
0
1
2
1
1
2
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
2
2
0
0
2
1
0
0
0
0
0
0
0
0
0
0
2
0
2
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
2
0
0
0
0
2
2
2
0
0
2
2
0
1
0
0
0
0
0
2
0
0
0
2
0
0
0
0
0
0
0
0
2
0
2
1
1
2
2
0
0
0
0
0
1
1
0
0
0
1
0
2
0
1
2
1
1
0
0
0
0
0
0
0
0
0
0
0
2
2
0
0
2
0
2
0
1
0
1
1
0
0
1
0
0
0
0
2
1
0
0
2
0
0
0
0
0
2
1
0
2
1
0
1
0
0
0
2
0
0
0
0
0
0
2
0
2
0
0
0
0
2
0
2
0
0
0
0
0
2
2
0
1
0
0
0
2
0
2
1
0
0
2
2
1
0
2
0
0
0
0
0
2
0
0
2
1
0
1
0
2
0
1
2
2
2
2
1
0
0
0
1
2
2
2
1
0
0
0
0
0
0
0
0
0
2
2
0
1
0
1
0
1
0
0
0
0
2
0
0
0
0
2
0
0
1
2
0
1
1
1
2
0
1
1
2
0
0
2
2
0
0
0
0
1
1
0
0
0
0
0
0
0
0
2
2
0
0
0
2
2
0
1
0
0
0
0
0
0
0
0
0
2
2
0
0
0
0
0
0
2
0
0
0
2
0
0
2
2
0
0
1
1
2
2
0
0
2
2
0
2
0
0
0
0
0
0
0
0
2
2
2
2
2
0
2
0
2
0
0
0
0
0
0
0
2
0
0
0
0
0
2
2
0
0
0
0
0
1
1
0
0
0
1
1
0
1
2
2
0
0
0
0
0
0
1
0
2
2
2
2
0
0
2
1
0
2
2
0
2
2
0
0
2
2
0
1
1
0
0
1
2
0
2
2
0
0
1
2
0
0
2
0
0
2
0
0
2
0
2
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
2
0
0
0
2
0
0
0
1
0
2
0
0
0
2
0
0
1
0
0
0
1
0
2
0
0
0
2
0
0
0
2
2
0
0
1
0
0
2
0
0
0
0
2
0
0
1
0
0
0
0
0
0
2
0
2
1
1
0
0
0
0
0
2
2
2
0
0
0
2
0
0
0
0
0
0