#![allow(unused_imports)]
#![allow(dead_code)]

use std::thread;
use std::io::{ self, Read };
use std::iter::Iterator;
use std::cmp::*;
use std::collections::*;
use std::str;

#[derive(Default)]
struct Input {
    buf: Vec<String>
}

impl Input {
    fn new() -> Input {
        Input { buf: Vec::new() }
    }

    fn next(&mut self) -> String {
        while self.buf.is_empty() {
            let mut s = String::new();
            let _res = io::stdin().read_line(&mut s);
            self.buf = s.split_whitespace().map(|s| s.to_owned()).collect::<Vec<_>>();
            self.buf.reverse();
        }
        self.buf.pop().unwrap()
    }

    fn next_int(&mut self) -> i64 {
        self.next().parse::<i64>().unwrap()
    }

    fn next_int_n(&mut self, n: usize) -> Vec<i64> {
        let mut v = Vec::<i64>::new();
        for _ in 0..n { v.push(self.next_int()); }
        v
    }
}

fn run() {
    let mut input = Input::new();
    let a = input.next_int();
    let b = input.next_int();
    println!("{}", if a * b % 2 == 0 { "Even" } else { "Odd" });
}

fn main() {
    let _ = thread::Builder::new()
        .stack_size(10 * 1024 * 1024)
        .spawn(run).unwrap()
        .join();
}