A Chmyaaax le gustan mucho los dumplings, así que después de haber llegado de LCOI (Olimpiada Link-Cut en Informática), decidió comer algunos. Pero, desafortunadamente, en el momento en que estaba en la olimpiada, el sistema Link-Cut había sido reconstruido.
Ahora el sistema es un plano limitado en forma de cuadrado con longitud de lado con sus esquinas ubicadas en los puntos , , y . En cada punto, hay un restaurante donde se pueden comprar dumplings. Además, hay una función f(x, y) que define la delicia de los dumplings en el restaurante en el punto :
donde el signo representa la operación XOR a nivel de bits, el signo — operación OR a nivel de bits y el signo — operación AND a nivel de bits.
Chmyaaax quiere probar los dumplings más sabrosos que pueda encontrar en el sistema Link-Cut, por lo que quiere saber, entre todos los (n + 1) \times (n + 1) restaurantes en el sistema, cuál es la mayor delicia de los dumplings y cuántos restaurantes tienen esta delicia. Por favor, ayúdalo a determinar estos dos valores.
Dado que el número de restaurantes puede ser muy grande, por favor, imprime este valor módulo 10^9 + 7.
Una sola línea contiene un entero (1 \le n < 2^{60}) — la longitud del lado del sistema Link-Cut.
En una sola línea, necesitas imprimir dos enteros: la máxima delicia de los dumplings que se puede encontrar entre todos los restaurantes y el número de restaurantes con este valor de delicia módulo 10 ^ 9 + 7. Por favor, ten en cuenta que la máxima delicia debe ser impresa tal como está en la respuesta (es decir, no módulo 10 ^ 9 + 7).
Ejemplo
Ejemplo 1
Ejemplo 2
Ejemplo 3
En el primer ejemplo, aquí están todos los puntos y los valores de la delicia de los dumplings en los restaurantes en ellos:
: f(0, 0) = 0 + 0 + 0 =\;0
: f(0, 1) = 1 + 1 + 0 =\;2
: f(0, 2) = 2 + 2 + 0 =\;4
: f(0, 3) = 3 + 3 + 0 =\;6
: f(1, 0) = 1 + 1 + 0 =\;2
: f(1, 1) = 0 + 1 + 1 =\;2
: f(1, 2) = 3 + 3 + 0 =\;6
: f(1, 3) = 2 + 3 + 1 =\;6
: f(2, 0) = 2 + 2 + 0 =\;4
: f(2, 1) = 3 + 3 + 0 =\;6
: f(2, 2) = 0 + 2 + 2 =\;4
: f(2, 3) = 1 + 3 + 2 =\;6
: f(3, 0) = 3 + 3 + 0 =\;6
: f(3, 1) = 2 + 3 + 1 =\;6
: f(3, 2) = 1 + 3 + 2 =\;6
: f(3, 3) = 0 + 3 + 3 =\;6
Como podemos ver, la máxima delicia de todos estos restaurantes es y hay puntos que la tienen.
En el segundo ejemplo, hay puntos de restaurantes con una delicia de :
: f(2, 5) = (2 \oplus 5) + (2\,|\,5) + (2\,\&\,5) = 7 + 7 + 0 = 14;
: f(3, 4) = 7 + 7 + 0 = 14;
: f(3, 5) = 6 + 7 + 1 = 14;
: f(4, 3) = 7 + 7 + 0 = 14;
: f(5, 2) = 7 + 7 + 0 = 14;
: f(5, 3) = 6 + 7 + 1 = 14.
Se puede demostrar que no hay restaurantes en los límites dados con una delicia mayor que .
( puntos): n < 2^{10};
( puntos): n = 2^{k} - 1, para algún entero (1 \le k \le 20);
( puntos): n < 2^{20};
( puntos): n = 2^{k} - 1, para algún entero (1 \le k \le 60);
( puntos): sin restricciones adicionales.