

#include <bits/stdc++.h>
using namespace std;
long long a[10];

long long tcs(string s)
{
    long long t = 0;

    for (char i : s)
    {
        t += i - '0';
    }
    return t;
}
int main() {
    string s;
    cin >> s;
    if (tcs(s) % 9 != 0)
    {
        cout << -1;
        return 0;
    }

    sort(s.begin(), s.end());
    long long i = 0;

    while (s[i] == '0')
    {
        i++;
    }
    string x = "";
    x += s[i+1];
    
    for (int j = 0; j <= i; j++)
    {
        x += '0';
    }
    i++;
    
    while (i < s.size())
    {
        x += s[i];
        i++;
    }
    cout << x;
    a[x[x.size() - 1] - '0'] = (int)(x.size());
    for (long long i = x.size() - 2; i >= 0; i--)
    {
        long long j = -1;

        for (long long v = 9; v >= 0; v--) if (a[v] != 0)
        {
            if (((x[i] - '0') * 10 + v) % 4 == 0 || ((v * 10) + (x[i] - '0')) % 4 == 0)
            {
                j = a[v] - 1;
                for (long long k = 0; k < i; k++) cout << x[k];
                for (long long k = i + 1; k <= j - 1; k++) cout << x[k];
                for (long long k = j + 1; k <= x.size() - 1; k++) cout << x[k];
                long long _min = min(x[i], x[j]) - '0';
            	long long _max = max(x[i], x[j]) - '0';
                if ((_min * 10 + _max) % 4 == 0) cout << _min << _max;
                else cout << _max << _min;
                return 0;
            }
        }
        if (a[x[i] - '0'] == 0) a[x[i] - '0'] = i + 1;
    }
}
