Language: C

struct Read<R: std::io::BufRead> {
    stdin: R,
    v: Vec<String>,
    i: usize,
}
impl<R:std::io::BufRead> Read<R> {
    pub fn new(stdin: R) -> Self {
        Read{
            stdin: stdin,
            v: Vec::new(),
            i: 0,
        }
    }
    pub fn read_until<T: std::str::FromStr>(&mut self) -> T {
        if self.i == self.v.len() {self.read_line();}
        let elem = &self.v[self.i];
        self.i += 1;
        elem.parse().unwrap_or_else(|_| panic!())
    }
    pub fn read_line(&mut self) {
        self.i = 0; self.v.clear();
        let mut buf = String::new();
        self.stdin.read_line(&mut buf).unwrap();
        let buf = buf.trim().to_owned();
        let mut ws = buf.split_whitespace();
        loop {
            let x = ws.next();
            if x.is_none() {break;}
            let x = x.unwrap().to_owned();
            self.v.push(x);
        }
    }
    #[allow(dead_code)]
    pub fn read_i32(&mut self) -> i32 {
        if self.i == self.v.len() {self.read_line();}
        let elem = self.v[self.i].parse().unwrap();
        self.i += 1;
        elem
    }
    #[allow(dead_code)]
    pub fn read_string(&mut self) -> String {
        if self.i == self.v.len() {self.read_line();}
        let elem = &self.v[self.i];
        self.i += 1;
        elem.to_owned()
    }
}
fn main() {
    use std::io;
    let stdin = io::stdin();
    let stdin = io::BufReader::new(stdin.lock());
    let read = Read::new(stdin);
    solve(read);
}

fn solve<R: std::io::BufRead>(mut r: Read<R>) {
    let s:i32 = r.read_until();
    let w:i32 = r.read_until();
    println!("{}", if s <= w {
        "unsafe"
    }else{
        "safe"
    });
}

Compiler output:
main.c:1:12: error: expected identifier or '(' before '<' token
    1 | struct Read<R: std::io::BufRead> {
      |            ^
main.c:6:5: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
    6 | impl<R:std::io::BufRead> Read<R> {
      |     ^
main.c:33:6: error: invalid preprocessing directive #[
   33 |     #[allow(dead_code)]
      |      ^
main.c:40:6: error: invalid preprocessing directive #[
   40 |     #[allow(dead_code)]
      |      ^
main.c:48:1: error: unknown type name 'fn'
   48 | fn main() {
      | ^~
main.c: In function 'main':
main.c:49:5: error: unknown type name 'use'
   49 |     use std::io;
      |     ^~~
main.c:49:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before '::' token
   49 |     use std::io;
      |            ^~
main.c:50:5: error: unknown type name 'let'
   50 |     let stdin = io::stdin();
      |     ^~~
main.c:50:17: error: 'io' undeclared (first use in this function)
   50 |     let stdin = io::stdin();
      |                 ^~
main.c:50:17: note: each undeclared identifier is reported only once for each function it appears in
main.c:50:19: error: expected ',' or ';' before '::' token
   50 |     let stdin = io::stdin();
      |                   ^~
main.c:51:5: error: unknown type name 'let'
   51 |     let stdin = io::BufReader::new(stdin.lock());
      |     ^~~
main.c:51:9: error: redefinition of 'stdin'
   51 |     let stdin = io::BufReader::new(stdin.lock());
      |         ^~~~~
main.c:50:9: note: previous definition of 'stdin' with type 'int'
   50 |     let stdin = io::stdin();
      |         ^~~~~
main.c:51:19: error: expected ',' or ';' before '::' token
   51 |     let stdin = io::BufReader::new(stdin.lock());
      |                   ^~
main.c:52:5: error: unknown type name 'let'
   52 |     let read = Read::new(stdin);
      |     ^~~
main.c:52:16: error: 'Read' undeclared (first use in this function)
   52 |     let read = Read::new(stdin);
      |                ^~~~
main.c:52:20: error: expected ',' or ';' before '::' token
   52 |     let read = Read::new(stdin);
      |                    ^~
main.c:53:5: error: implicit declaration of function 'solve' [-Wimplicit-function-declaration]
   53 |     solve(read);
      |     ^~~~~
main.c: At top level:
main.c:56:1: error: unknown type name 'fn'
   56 | fn solve<R: std::io::BufRead>(mut r: Read<R>) {
      | ^~
main.c:56:9: error: expected '=', ',', ';', 'asm' or '__attribute__' before '<' token
   56 | fn solve<R: std::io::BufRead>(mut r: Read<R>) {
      |         ^