Your security guard friend recently got a new job at a new security company. The company requires him to patrol an area of the city encompassing exactly N city blocks, but they let him choose which blocks. That is, your friend must walk the perimeter of a region whose area is exactly N blocks. Your friend is quite lazy and would like your help to find the shortest possible route that meets the requirements. The city is laid out in a square grid pattern, and is large enough that for the sake of the problem it can be considered infinite.

Input

Input will consist of a single integer N (1 ≤ N ≤ 106), the number of city blocks that must be enclosed by the route.

Output

Print the minimum perimeter that can be achieved.

Examples

Input

4


Output

8


Input

11


Output

14


Input

22


Output

20

Note

Here are some possible shapes for the examples:

<image>
from sys import maxsize, stdout, stdin,stderr
mod = int(1e9 + 7)
def tup():return map(int,stdin.readline().split())
def I(): return int(stdin.readline())
def lint(): return [int(x) for x in stdin.readline().split()]
def S(): return input().strip()
def grid(r, c): return [lint() for i in range(r)]
def debug(*args, c=6): print('\033[3{}m'.format(c), *args, '\033[0m', file=stderr)
from  math import  log2,sqrt
from collections import Counter,defaultdict
from itertools import permutations
import re
# def bark():
#     n = I();    s =S()
#     a = re.split('[A-Z]+',s)
#     p = max(map(lambda x: len(set(x)),a))
#     return p
from math import floor,sqrt,ceil
def bark():
    n = I()
    print(next(2*i for i in range(1000000) if (i//2 *( i//2  + i%2 ) >= n) ))







if __name__ == '__main__':
    bark()

