For a positive integer X, let f(X) be the number of positive divisors of X.

Given a positive integer N, find \sum_{K=1}^N K\times f(K).

Constraints

* 1 \leq N \leq 10^7

Input

Input is given from Standard Input in the following format:


N


Output

Print the value \sum_{K=1}^N K\times f(K).

Examples

Input

4


Output

23


Input

100


Output

26879


Input

10000000


Output

838627288460105
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.*;

public class Main {
    static int n;

    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner();
        PrintWriter out = new PrintWriter(System.out);
        n = sc.nextInt();
        int[] cnt = new int[n + 1];
        Arrays.fill(cnt, 1);
        long ans = 0;
        for (int i = 2; i <= n; i++) {
            if (cnt[i] == 1) {
                for (int j = i; j <= n; j += i) {
                    int e = 0, tmp = j;
                    while (tmp % i == 0) {
                        tmp/=i;
                        e++;
                    }
                    cnt[j] *= (e + 1);
                }
            }
            ans += 1l*i * cnt[i];
        }
        out.println(ans+1);
        out.flush();
        out.close();
    }

    static class Scanner {
        BufferedReader br;
        StringTokenizer st;

        Scanner() {
            br = new BufferedReader(new InputStreamReader(System.in));
        }

        String next() throws IOException {
            while (st == null || !st.hasMoreTokens()) st = new StringTokenizer(br.readLine());
            return st.nextToken();
        }

        int nextInt() throws IOException {
            return Integer.parseInt(next());
        }

        public int[] nextIntArray(int n) throws IOException {
            int[] ans = new int[n];
            for (int i = 0; i < n; i++)
                ans[i] = nextInt();
            return ans;
        }
    }
}
