use std::io::stdin;
use std::io::Error;
use std::io::Read;

#[derive(Debug)]
struct Input {
    a: Vec<u32>,
}

fn handle_input(input_str: String) -> Result<Input, Error> {
    let mut iter = input_str.split_whitespace();
    let a: u32 = iter.next().unwrap().parse().unwrap();
    let b: u32 = iter.next().unwrap().parse().unwrap();
    let c: u32 = iter.next().unwrap().parse().unwrap();
    let d: u32 = iter.next().unwrap().parse().unwrap();
    let e: u32 = iter.next().unwrap().parse().unwrap();
    let input = Input {
        a: vec![a, b, c, d, e],
    };
    Ok(input)
}

fn handle_output(input: Input) -> Result<String, Error> {
    let mut others = input
        .a
        .iter()
        .filter(|&a| a % 10 != 0)
        .collect::<Vec<&u32>>();
    others.sort_by(|&a, &b| (a % 10).partial_cmp(&(b % 10)).unwrap());
    let mut iter = others.iter();
    let mut sum = input.a.iter().filter(|&a| a % 10 == 0).sum::<u32>();
    if let Some(&first) = iter.next() {
        sum += first;
    }
    sum += iter.map(|&a| (a / 10 + 1) * 10).sum::<u32>();
    Ok(format!("{}", sum))
}

fn main() {
    let mut input_str = String::new();
    let stdin = stdin();
    stdin.lock().read_to_string(&mut input_str).unwrap();
    let input = handle_input(input_str).unwrap();
    let output = handle_output(input).unwrap();
    println!("{}", output);
}