Polycarp knows that if the sum of the digits of a number is divisible by $3$, then the number itself is divisible by $3$. He assumes that the numbers, the sum of the digits of which is divisible by $4$, are also somewhat interesting. Thus, he considers a positive integer $n$ interesting if its sum of digits is divisible by $4$.

Help Polycarp find the nearest larger or equal interesting number for the given number $a$. That is, find the interesting number $n$ such that $n \ge a$ and $n$ is minimal.


-----Input-----

The only line in the input contains an integer $a$ ($1 \le a \le 1000$).


-----Output-----

Print the nearest greater or equal interesting number for the given number $a$. In other words, print the interesting number $n$ such that $n \ge a$ and $n$ is minimal.


-----Examples-----
Input
432

Output
435

Input
99

Output
103

Input
237

Output
237

Input
42

Output
44

Difficulty: introductory

Starter code:

Solutions:
def f(n):
    a=0
    while(n>0):
        a+=n%10
        n//=10
    return a
n=int(input())
while f(n)%4!=0:
    n+=1
print(n)


n = int(input())
for i in range(n, n + 1000):
	s = str(i)
	summ = 0
	for c in s:
		summ += ord(c) - ord('0')
	if summ % 4 == 0:
		print(i)
		return


def check(a):
    s = str(a)
    t = 0
    for el in s:
        t += int(el)
    return t % 4 == 0
# n, m = map(int, input().split())
n = int(input())
# a = [int(i) for i in input().split()]
while not check(n):
    n += 1
print(n)

n = int(input())
def inter(n):
    s = str(n)
    cnt = 0
    for i in s:
        cnt += int(i)
    if cnt % 4:
        return False
    return True
while not inter(n):
    n += 1
print(n)

a = int(input())
while sum(list(map(int, str(a)))) % 4:
    a += 1
print(a)

def main():
    def is_interesting(n):
        s = 0
        while n:
            s += n % 10
            n //= 10
        if s % 4 == 0:
            return 1
        return 0
    import sys
    input = sys.stdin.readline
    
    a = int(input())
    while not is_interesting(a):
        a += 1
    print(a)
    return 0

main()

a=int(input())
for i in range(a, 10000000):
    q = str(i)
    s=0
    for j in q:
        s+=ord(j) - ord('0')
    if s%4==0:
        print(i)
        return

n=int(input())
for i in range(n,n+10):
    ans=0
    for j in str(i):
        ans+=int(j)
    if ans%4==0:
        print(i)
        return

n=int(input())
while 1:
    y=str(n)
    counter=0
    for item in y:
        counter+=int(item)
    if counter%4==0:
        print(y)
        break
    n+=1


def good(n):
  return sum(int(c) for c in str(n)) % 4 == 0
n = int(input())
while not good(n):
  n += 1
print(n)


#JMD
#Nagendra Jha-4096

 
import sys
import math

#import fractions
#import numpy
 
###File Operations###
fileoperation=0
if(fileoperation):
    orig_stdout = sys.stdout
    orig_stdin = sys.stdin
    inputfile = open('W:/Competitive Programming/input.txt', 'r')
    outputfile = open('W:/Competitive Programming/output.txt', 'w')
    sys.stdin = inputfile
    sys.stdout = outputfile

###Defines...###
mod=1000000007
 
###FUF's...###
def nospace(l):
    ans=''.join(str(i) for i in l)
    return ans
 
 
 
##### Main ####
t=1
for tt in range(t):
    n=int(input())
    while 1:
        s=str(n)
        tot=0
        for char in s:
            tot+=ord(char)-ord('0')
        if(tot%4==0):
            print(s)
            break
        n+=1
    
#####File Operations#####
if(fileoperation):
    sys.stdout = orig_stdout
    sys.stdin = orig_stdin
    inputfile.close()
    outputfile.close()

a = input()
b = int(a)
while True:
    su  = 0
    a = str(b)
    for i in a:
        su += int(i)
    if su % 4 == 0:
        print(b)
        break
    else:
        b += 1


n = int(input())
def s(n):
    k = 0
    for i in str(n):
        k += int(i)
    return k
while s(n) % 4 != 0:
    n += 1
print(n)

#  =========     /\       /|    |====/|
#      |        /  \       |    |   / |
#      |       /____\      |    |  /  |
#      |      /      \     |    | /   |
#  ========= /        \  =====  |/====|  
#  code

def __starting_point():
    n = int(input())
    def dsum(n):
        ans = 0
        while n > 0:
            ans += n%10
            n //= 10
        return ans
    while dsum(n)%4 != 0:
        n += 1
    print(n)

__starting_point()

n = int(input())

while True:
    if (sum([int(k) for k in str(n)]) % 4 == 0):
        break
    n += 1

print(n)



n = int(input())


while True:
    z = list(str(n))
    z = list(map(int,z))
    if sum(z)%4 == 0:
        break
    else:
        n+=1


print(n)




N = int(input())
    
#arr = input()
#arr = [int(num) for num in arr.split(' ')]


ans = N
while True:
    d = [int(i) for i in str(ans)]
    
    if sum(d)%4==0:
        print(ans)
        break
    ans += 1

#Bhargey Mehta (Sophomore)
#DA-IICT, Gandhinagar
import sys, math, queue, bisect
#sys.stdin = open("input.txt", "r")
MOD = 10**9+7
sys.setrecursionlimit(1000000)

def get(x):
    return sum(list(map(int, str(x))))

a = int(input())
while True:
    if get(a) % 4 == 0:
        print(a)
        return
    a += 1


n = int(input())
while True:
    if sum(map(int, str(n))) % 4 == 0:
        print(n)
        return
    n += 1

def summa(x):
    x=str(x)
    otv=0
    for i in x:
        otv+=int(i)
    return otv
n=int(input())
a=n
while summa(a)%4!=0:
    a+=1
print(a)


n = int(input())
i = n
while True:
	s = str(i)
	su = 0
	for j in range(len(s)):
		su += int(s[j])
	if su%4 == 0:
		print(i)
		break
	i += 1

n = int(input())
while (1):
    s = 0
    temp = str(n)
    for x in temp:
        s += int(x)
    if s % 4 == 0:
        print(temp)
        break
    n+=1


a = int(input())

while sum(list(map(int, list(str(a))))) % 4 != 0:
	a += 1

print(a)


n = int(input())
s = sum([int(x) for x in str(n)])
while s%4!=0:
    n+=1
    s = sum([int(x) for x in str(n)])
print(n)