import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class Euler732 {
    static final long kMod = 1000000007L;

    static class Job implements Comparable<Job> {
        int deadline, p, q;

        Job(int deadline, int p, int q) {
            this.deadline = deadline;
            this.p = p;
            this.q = q;
        }

        @Override
        public int compareTo(Job other) {
            if (this.deadline != other.deadline) {
                return Integer.compare(this.deadline, other.deadline);
            }
            return Integer.compare(this.p, other.p);
        }
    }

    static int ceilDivBySqrt2(int hsum) {
        long target = (long) hsum * hsum;
        int lo = 0;
        int hi = hsum;
        while (lo < hi) {
            int mid = lo + (hi - lo) / 2;
            long lhs = 2L * mid * mid;
            if (lhs >= target) {
                hi = mid;
            } else {
                lo = mid + 1;
            }
        }
        return lo;
    }

    public static String solve() {
        int n = 1000;
        int[] h = new int[n];
        int[] l = new int[n];
        int[] q = new int[n];

        long pow5 = 1;
        for (int idx = 0; idx < 3 * n; ++idx) {
            if (idx > 0) {
                pow5 = (pow5 * 5L) % kMod;
            }
            int r = (int) (pow5 % 101L) + 50;
            int troll = idx / 3;
            if (idx % 3 == 0) {
                h[troll] = r;
            } else if (idx % 3 == 1) {
                l[troll] = r;
            } else {
                q[troll] = r;
            }
        }

        int hsum = 0;
        for (int x : h) {
            hsum += x;
        }

        int ceilHOverSqrt2 = ceilDivBySqrt2(hsum);

        List<Job> jobs = new ArrayList<>(n);
        int maxDeadline = 0;

        for (int i = 0; i < n; ++i) {
            int startDeadline = hsum + l[i] - ceilHOverSqrt2;
            int completionDeadline = startDeadline + h[i];
            jobs.add(new Job(completionDeadline, h[i], q[i]));
            if (completionDeadline > maxDeadline) {
                maxDeadline = completionDeadline;
            }
        }

        Collections.sort(jobs);

        int kNeg = -1000000000;
        int[] dp = new int[maxDeadline + 1];
        java.util.Arrays.fill(dp, kNeg);
        dp[0] = 0;

        for (Job job : jobs) {
            for (int t = job.deadline; t >= job.p; --t) {
                int prev = dp[t - job.p];
                if (prev == kNeg)
                    continue;
                int cand = prev + job.q;
                if (cand > dp[t]) {
                    dp[t] = cand;
                }
            }
        }

        int best = 0;
        for (int v : dp) {
            if (v > best) {
                best = v;
            }
        }

        return Integer.toString(best);
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
