You have number a, whose decimal representation quite luckily contains digits 1, 6, 8, 9. Rearrange the digits in its decimal representation so that the resulting number will be divisible by 7.

Number a doesn't contain any leading zeroes and contains digits 1, 6, 8, 9 (it also can contain another digits). The resulting number also mustn't contain any leading zeroes.

Input

The first line contains positive integer a in the decimal record. It is guaranteed that the record of number a contains digits: 1, 6, 8, 9. Number a doesn't contain any leading zeroes. The decimal representation of number a contains at least 4 and at most 106 characters.

Output

Print a number in the decimal notation without leading zeroes — the result of the permutation.

If it is impossible to rearrange the digits of the number a in the required manner, print 0.

Examples

Input

1689


Output

1869


Input

18906


Output

18690
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Iterator;
import java.io.BufferedWriter;
import java.util.InputMismatchException;
import java.io.IOException;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.util.NoSuchElementException;
import java.io.InputStream;

/**
 * Built using CHelper plug-in
 * Actual solution is at the top
 *
 * @author cplayer
 */
public class Main {
    public static void main (String[] args) {
        InputStream inputStream = System.in;
        OutputStream outputStream = System.out;
        InputReader in = new InputReader(inputStream);
        OutputWriter out = new OutputWriter(outputStream);
        ADivisibleBySeven solver = new ADivisibleBySeven();
        solver.solve(1, in, out);
        out.close();
    }

    static class ADivisibleBySeven {
        private int[] targetPermutations = new int[7];

        public void solve (int testNumber, InputReader in, OutputWriter out) {
            IntList permutations = new IntArrayList(new int[]{1, 6, 8, 9});
            Arrays.fill(targetPermutations, -1);
            do {
                int curValue = 0;
                for (int i = 0; i < permutations.size(); ++i) {
                    curValue = curValue * 10 + permutations.get(i);
                }
                if (targetPermutations[curValue % 7] == -1) {
                    targetPermutations[curValue % 7] = curValue;
                }
            } while (permutations.nextPermutation());
            int[] str = ArrayUtils.convertCharArrayToIntArray(in.readString().toCharArray());
            replace(str, 1);
            replace(str, 6);
            replace(str, 8);
            replace(str, 9);
            int remainMod = 0, topMod = 1;
            for (int i = 0; i < str.length; ++i) {
                if (str[i] >= 0) {
                    remainMod = remainMod * 10 + str[i];
                    remainMod %= 7;
                    topMod = topMod * 10;
                    topMod %= 7;
                }
            }
            for (int i = 0; i < 7; ++i) {
                if ((i * topMod + remainMod) % 7 == 0) {
                    printRes(out, targetPermutations[i], str);
                    return;
                }
            }
            out.println(0);
        }

        private void printRes (OutputWriter out, int targetPermutation, int[] str) {
            out.print(targetPermutation);
            for (int i = 0; i < str.length; ++i) {
                if (str[i] > -1) {
                    out.print(str[i]);
                }
            }
            out.println();
        }

        private int replace (int[] str, int value) {
            for (int i = 0; i < str.length; ++i) {
                if (str[i] == value) {
                    str[i] = -1;
                    return i;
                }
            }
            return -1;
        }

    }

    static class IntArrayList extends IntAbstractStream implements IntList {
        private int size;
        private int[] data;

        public IntArrayList () {
            this(3);
        }

        public IntArrayList (int capacity) {
            data = new int[capacity];
        }

        public IntArrayList (IntCollection c) {
            this(c.size());
            addAll(c);
        }

        public IntArrayList (IntStream c) {
            this();
            if (c instanceof IntCollection) {
                ensureCapacity(((IntCollection) c).size());
            }
            addAll(c);
        }

        public IntArrayList (IntArrayList c) {
            size = c.size();
            data = c.data.clone();
        }

        public IntArrayList (int[] arr) {
            size = arr.length;
            data = arr.clone();
        }

        public int size () {
            return size;
        }

        public int get (int at) {
            if (at >= size) {
                throw new IndexOutOfBoundsException("at = " + at + ", size = " + size);
            }
            return data[at];
        }

        private void ensureCapacity (int capacity) {
            if (data.length >= capacity) {
                return;
            }
            capacity = Math.max(2 * data.length, capacity);
            data = Arrays.copyOf(data, capacity);
        }

        public void addAt (int index, int value) {
            ensureCapacity(size + 1);
            if (index > size || index < 0) {
                throw new IndexOutOfBoundsException("at = " + index + ", size = " + size);
            }
            if (index != size) {
                System.arraycopy(data, index, data, index + 1, size - index);
            }
            data[index] = value;
            size++;
        }

        public void removeAt (int index) {
            if (index >= size || index < 0) {
                throw new IndexOutOfBoundsException("at = " + index + ", size = " + size);
            }
            if (index != size - 1) {
                System.arraycopy(data, index + 1, data, index, size - index - 1);
            }
            size--;
        }

        public void set (int index, int value) {
            if (index >= size) {
                throw new IndexOutOfBoundsException("at = " + index + ", size = " + size);
            }
            data[index] = value;
        }

    }

    static interface IntList extends IntReversableCollection {
        public abstract int get (int index);

        public abstract void set (int index, int value);

        public abstract void addAt (int index, int value);

        public abstract void removeAt (int index);

        default public void swap (int first, int second) {
            if (first == second) {
                return;
            }
            int temp = get(first);
            set(first, get(second));
            set(second, temp);
        }

        default public IntIterator intIterator () {
            return new IntIterator() {
                private int at;
                private boolean removed;

                public int value () {
                    if (removed) {
                        throw new IllegalStateException();
                    }
                    return get(at);
                }

                public boolean advance () {
                    at++;
                    removed = false;
                    return isValid();
                }

                public boolean isValid () {
                    return !removed && at < size();
                }

                public void remove () {
                    removeAt(at);
                    at--;
                    removed = true;
                }
            };
        }

        default public void add (int value) {
            addAt(size(), value);
        }

        default public boolean nextPermutation () {
            return nextPermutation(IntComparator.DEFAULT);
        }

        default public boolean nextPermutation (IntComparator comparator) {
            int size = size();
            int last = get(size - 1);
            for (int i = size - 2; i >= 0; i--) {
                int current = get(i);
                if (comparator.compare(last, current) > 0) {
                    for (int j = size - 1; j > i; j--) {
                        if (comparator.compare(get(j), current) > 0) {
                            swap(i, j);
                            subList(i + 1, size).inPlaceReverse();
                            return true;
                        }
                    }
                }
                last = current;
            }
            return false;
        }

        default public void inPlaceReverse () {
            for (int i = 0, j = size() - 1; i < j; i++, j--) {
                swap(i, j);
            }
        }

        default public IntList subList (final int from, final int to) {
            return new IntList() {
                private final int shift;
                private final int size;

                {
                    if (from < 0 || from > to || to > IntList.this.size()) {
                        throw new IndexOutOfBoundsException("from = " + from + ", to = " + to + ", size = " + size());
                    }
                    shift = from;
                    size = to - from;
                }

                public int size () {
                    return size;
                }

                public int get (int at) {
                    if (at < 0 || at >= size) {
                        throw new IndexOutOfBoundsException("at = " + at + ", size = " + size());
                    }
                    return IntList.this.get(at + shift);
                }

                public void addAt (int index, int value) {
                    throw new UnsupportedOperationException();
                }

                public void removeAt (int index) {
                    throw new UnsupportedOperationException();
                }

                public void set (int at, int value) {
                    if (at < 0 || at >= size) {
                        throw new IndexOutOfBoundsException("at = " + at + ", size = " + size());
                    }
                    IntList.this.set(at + shift, value);
                }

                public IntList compute () {
                    return new IntArrayList(this);
                }
            };
        }

    }

    static interface IntIterator {
        public int value () throws NoSuchElementException;

        public boolean advance ();

        public boolean isValid ();

    }

    static interface IntCollection extends IntStream {
        public int size ();

        default public void add (int value) {
            throw new UnsupportedOperationException();
        }

        default public IntCollection addAll (IntStream values) {
            for (IntIterator it = values.intIterator(); it.isValid(); it.advance()) {
                add(it.value());
            }
            return this;
        }

    }

    static interface IntReversableCollection extends IntCollection {
    }

    static class ArrayUtils {
        public static int[] convertCharArrayToIntArray (char[] arr) {
            int[] res = new int[arr.length];
            for (int i = 0; i < arr.length; ++i) {
                if (arr[i] <= '9' && arr[i] >= '0') {
                    res[i] = arr[i] - '0';
                } else {
                    return null;
                }
            }
            return res;
        }

    }

    static class OutputWriter {
        private final PrintWriter writer;

        public OutputWriter (OutputStream outputStream) {
            writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
        }

        public OutputWriter (Writer writer) {
            this.writer = new PrintWriter(writer);
        }

        public void println () {
            writer.println();
        }

        public void close () {
            writer.close();
        }

        public void print (int i) {
            writer.print(i);
        }

        public void println (int i) {
            writer.println(i);
        }

    }

    static abstract class IntAbstractStream implements IntStream {
        public String toString () {
            StringBuilder builder = new StringBuilder();
            boolean first = true;
            for (IntIterator it = intIterator(); it.isValid(); it.advance()) {
                if (first) {
                    first = false;
                } else {
                    builder.append(' ');
                }
                builder.append(it.value());
            }
            return builder.toString();
        }

        public boolean equals (Object o) {
            if (!(o instanceof IntStream)) {
                return false;
            }
            IntStream c = (IntStream) o;
            IntIterator it = intIterator();
            IntIterator jt = c.intIterator();
            while (it.isValid() && jt.isValid()) {
                if (it.value() != jt.value()) {
                    return false;
                }
                it.advance();
                jt.advance();
            }
            return !it.isValid() && !jt.isValid();
        }

        public int hashCode () {
            int result = 0;
            for (IntIterator it = intIterator(); it.isValid(); it.advance()) {
                result *= 31;
                result += it.value();
            }
            return result;
        }

    }

    static interface IntStream extends Iterable<Integer>, Comparable<IntStream> {
        public IntIterator intIterator ();

        default public Iterator<Integer> iterator () {
            return new Iterator<Integer>() {
                private IntIterator it = intIterator();

                public boolean hasNext () {
                    return it.isValid();
                }

                public Integer next () {
                    int result = it.value();
                    it.advance();
                    return result;
                }
            };
        }

        default public int compareTo (IntStream c) {
            IntIterator it = intIterator();
            IntIterator jt = c.intIterator();
            while (it.isValid() && jt.isValid()) {
                int i = it.value();
                int j = jt.value();
                if (i < j) {
                    return -1;
                } else if (i > j) {
                    return 1;
                }
                it.advance();
                jt.advance();
            }
            if (it.isValid()) {
                return 1;
            }
            if (jt.isValid()) {
                return -1;
            }
            return 0;
        }

    }

    static class InputReader {
        private InputStream stream;
        private byte[] buf = new byte[1024];
        private int curChar;
        private int numChars;
        private InputReader.SpaceCharFilter filter;

        public InputReader (InputStream stream) {
            this.stream = stream;
        }

        public int read () {
            if (numChars == -1) {
                throw new InputMismatchException();
            }
            if (curChar >= numChars) {
                curChar = 0;
                try {
                    numChars = stream.read(buf);
                } catch (IOException e) {
                    throw new InputMismatchException();
                }
                if (numChars <= 0) {
                    return -1;
                }
            }
            return buf[curChar++];
        }

        public String readString () {
            int c = read();
            while (isSpaceChar(c)) {
                c = read();
            }
            StringBuilder res = new StringBuilder();
            do {
                if (Character.isValidCodePoint(c)) {
                    res.appendCodePoint(c);
                }
                c = read();
            } while (!isSpaceChar(c));
            return res.toString();
        }

        public boolean isSpaceChar (int c) {
            if (filter != null) {
                return filter.isSpaceChar(c);
            }
            return isWhitespace(c);
        }

        public static boolean isWhitespace (int c) {
            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
        }

        public interface SpaceCharFilter {
            public boolean isSpaceChar (int ch);

        }

    }

    static interface IntComparator {
        public static final IntComparator DEFAULT = (first, second) -> {
            if (first < second) {
                return -1;
            }
            if (first > second) {
                return 1;
            }
            return 0;
        };

        public int compare (int first, int second);

    }
}

