#gw2015b. [gw2015_b]アリ巣

[gw2015_b]アリ巣

问题文

有一个无限广阔的网格,坐标(0,0)(0,0)上有一只蚂蚁。每个整数坐标位置上可以写入数字00或者11,初始情况下所有坐标上都写着00。初始时,蚂蚁朝向上方(YY轴正方向),并且执行以下动作无限循环:

  • 如果当前所在位置写着数字00,则右转9090度;
  • 如果当前所在位置写着数字11,则左转9090度;
  • 反转当前所在位置的数字。即,如果原来是00,则写入11;如果原来是11,则写入00
  • 前进11步。具体操作如下:
    • 如果蚂蚁在坐标(x,y)(x,y)上且朝上方,则移动到坐标(x,y+1)(x,y+1)
    • 如果蚂蚁在坐标(x,y)(x,y)上且朝右方,则移动到坐标(x+1,y)(x+1,y)
    • 如果蚂蚁在坐标(x,y)(x,y)上且朝下方,则移动到坐标(x,y1)(x,y-1)
    • 如果蚂蚁在坐标(x,y)(x,y)上且朝左方,则移动到坐标(x1,y)(x-1,y)

求在蚂蚁前进了NN步之后,蚂蚁所在坐标上写着的数字。


输入

从标准输入读入数据。

输入的格式如下:

NN

  • 11 行包含一个整数 N(1N1018)N (1 ≦ N ≦ 10^{18}),表示步数。

输出

输出蚂蚁前进了NN步之后,蚂蚁所在坐标上写着的数字。

输入例子1

5

输出例子1

0

蚂蚁前进到第1010步时,网格状态如下图所示。其中,a表示蚂蚁的位置。

00000
00000
00a00
00000
00000

00000
00000
001a0
00000
00000

00000
00000
00110
000a0
00000

00000
00000
00110
00a10
00000

00000
00000
00a10
00110
00000

00000
00000
0a010
00110
00000

00000
0a000
01010
00110
00000

00000
01a00
01010
00110
00000

00000
01100
01a10
00110
00000

00000
01100
0a110
00110
00000

00000
01100
00110
0a110
00000

输入例子2

9

输出例子2

1

输入例子3

314159

输出例子3

1

输入例子4

12345678987654321

输出例子4

0