diff --git a/day05/Cargo.lock b/day05/Cargo.lock
new file mode 100644
index 0000000000000000000000000000000000000000..f8e92db6f96658d972c10a60c5a14d928b511f9f
--- /dev/null
+++ b/day05/Cargo.lock
@@ -0,0 +1,5 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "day05"
+version = "0.1.0"
diff --git a/day05/Cargo.toml b/day05/Cargo.toml
new file mode 100644
index 0000000000000000000000000000000000000000..83a7b532dca44d8412bf44aae3fb59592fc98a01
--- /dev/null
+++ b/day05/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "day05"
+version = "0.1.0"
+authors = ["Philip Molares <philip.molares@udo.edu>"]
+edition = "2018"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[dependencies]
diff --git a/day05/input.txt b/day05/input.txt
new file mode 100644
index 0000000000000000000000000000000000000000..9fe2d9acbc4775186bcaa0db412e93df33e99041
--- /dev/null
+++ b/day05/input.txt
@@ -0,0 +1,816 @@
+FBFBFBFRRL
+BFBBFFFRRL
+FFBFFFFRLL
+BFFFBBBRLL
+BBFFBFBLLR
+FFFFBBBRLR
+FBBBBFFLRR
+FBFFFBFRLL
+FFFFBFFRRR
+FFFBBFFRLR
+BFBBBBFRLL
+FBBFBFFLLL
+FFFBFFBRRL
+BFBFFBBLLL
+FFBBFBBLLR
+FFBFFBBRRL
+BFBFBBBRRL
+FFBFFBBLLL
+BFFFBBBLRR
+BFBFFBFRRR
+BFFBFFBRRL
+BFBFFFFLLR
+FFFFBBBLRR
+FFBBFBFRRR
+BFFFBFBLLL
+FBFFBBBRRL
+FBBBBBBRRL
+BBFBFFBLLL
+BFFBFFFLLL
+FBFFBBFLLR
+FBFBFFBLRL
+FFBFFFBRLR
+FFBBBBFRLL
+FBFBFFFLRL
+FBBFBBFRLR
+FFBBBBBLLL
+FBFFBFBLLL
+FBFFFBBRRR
+BBFFBBFRRR
+FBFFBFBRLL
+FBBBFBBRRR
+BFFFBFFRRL
+FFBFBFBLLL
+FBFBFFFRLR
+FBBFBBBLLL
+FFFBBBBLLL
+FFFBFFBLLL
+BFBFFBBLRR
+FFBBFFFLLR
+FFBBBBBLRR
+BBFFFFBRLL
+BFFFBBFLRR
+BFBFFFBRRR
+FBBFFFBLRR
+BFBFBFFLLL
+FBBFFBFRLL
+FFBBBBFLRL
+BFFFFBFLLR
+FBFBBBFLLR
+FFFBBFBRLL
+FFBFFBBRLL
+BFBBFFBRRR
+FFFFBFBRLL
+FBFFFBFRRL
+FBBFFBBLLR
+FFBBFFBRRL
+FBBBFFBRRL
+BFFFBBFLRL
+FFBBBFBRRL
+FFFFBFBRRL
+BFBFFBFLLR
+FBBBBBFLLR
+BFFBFFFLRL
+FFFBFBFRRL
+FFFFBBBRLL
+BFFFBFFRLL
+BFFFBBBLLR
+BBFFFFFRLR
+BBFFFBFRLR
+BFBBFBBLLL
+FBFBBBFRLL
+BFFBBFFRLR
+BFFBFBBLRR
+FFBFBBFRRR
+BFBBBFFLRR
+BFFBFBBRRR
+BBFFFFFRRL
+BBFFBFBLLL
+BFBBFBFLRL
+FBBFFBFLLL
+FBBFBFFRLL
+FBBBBFFLRL
+FBBFBFFRRL
+FFFBFBFLLL
+FFBFFBFRLR
+FBBFFFBLLR
+FFFFBFBLRL
+FFFBBFBLRR
+FFBBBFFRLL
+FBFBBBFRRR
+BFBBBBFLLL
+BBFFBFFLRL
+FFFFBBBLLL
+FFBFBBBLLL
+BFBFBFFRRL
+FBFFBBFRRR
+FFFBBBBLRR
+FBBBBFBLLL
+FBBBBBBLRL
+FFBFFFBLRR
+BBFBFFBRRL
+BFBBFFBLLL
+BFFFFFFLRL
+BFFFFBFRLR
+FBFFFFFLLL
+BFFBBFFRRL
+BFBFBBFLLL
+BFBFBFBRLL
+FBFBFBBLLL
+BFFFBFFLLR
+FBBBFBBLLL
+FFBFFFBRLL
+FBBFFBBLRR
+FFBFBFBRLL
+BFFFBBBRLR
+BBFFBFBLRL
+BBFFBFBLRR
+BBFFBBFRLL
+BFFFFBBRRR
+FBFBBFFLRR
+FFBBBBBRRR
+BFBBBFFRLL
+BFBBFFFLRR
+FBFBFFBRRR
+FFBFFBFLRR
+BFBBBBBLRL
+FBFFFFBRRR
+FFBFFFFLLR
+BFFFFFBLRL
+FFBBBBFLLL
+FBFFFBBLRL
+BBFFBFFLLR
+FBBFFFBRLL
+BBFFBBBRLR
+FBFFFBFLRR
+BFFBBFBRRL
+FBBFFFFRLR
+BFFBBBFLRR
+FFBBFBBLRR
+BFBBBBFRRL
+FBFBBBBLLL
+BBFFBFBRRR
+FFFFBBFRLR
+BFBBBBFRLR
+FBBFFBFRLR
+BFBFFFBRLL
+FBFBFBBRRL
+FBFBBFBRLR
+BFBBBBBRRR
+BBFBFFBRLR
+FFBFFFBLRL
+FBBFFBFLLR
+BFFBFBFLLL
+BFFFFFBLLL
+BFBFFBBRLR
+FBBBBFBRLR
+BFBBBFBRLR
+BFBBFBBRLL
+BBFFFFBLLR
+FBFBFBFRLL
+FFFBBFBRRL
+FBFFBBFRLR
+FFFBBBBLLR
+BBFFBFFLRR
+FBBBFFFRRL
+BBFFBBFLLL
+BBFFFBFRLL
+FFBFBBFLRR
+BFBFFFBLRL
+FFBFBBFLLR
+FBBBBFFLLL
+FFBBBBFLRR
+FFFBFBBLRL
+FFFBBFFLRR
+FBBBFBBRLL
+FFBFFFFLLL
+FBBBFBFLRL
+FBFBFBFRRR
+FFBBFBFLRR
+FFBFBBFRRL
+FBFBBFFLRL
+BFFFBBBRRL
+BFBBBBFLLR
+FFFBBFFRRR
+BFBBFBBRRL
+BBFFFBBLRL
+BFBFBFFLRR
+FFFFBFFLRL
+BFBFFBFRLL
+BFBFBBFRLR
+BFFBFFFLRR
+FBFFFFFLRR
+BFFBFBFRLL
+FBBFBFFLRR
+FBFBBBBLRR
+BFFFFFFRLR
+FBBFBBBRRL
+BFFBFBFRLR
+FFFBFFFRRL
+FFBFFFFRLR
+BFFBFFBLLL
+FFBFBBFLRL
+BBFFFFFLRL
+FFFBBFFRRL
+FFBBBFFLRL
+BFBBFFBLRR
+FFBBFBFRLR
+FFBFBFFRRR
+FFFFBFFLRR
+FBBBBFBRRL
+BFBBFBBLRL
+BFFBBFFLLR
+FBFFFBFLLR
+FBFBFFBLRR
+FFBBFBBRLL
+FBFFFFFRLR
+FFBBBBFRRL
+FBBFFBFRRR
+FFFFBBFRRR
+FBBBFFBLLL
+FFBBFBBLLL
+BFBFBFFRLL
+BFFFBBFLLL
+BFFBBFFRLL
+FBFBBFFRRL
+BBFBFFFLLR
+BBFBFFBLRR
+FBFFFFFRRR
+FBFFBFFRRR
+BFFBBFBRLR
+FBFBFBFLLL
+BFFBBBBLRR
+BFBBFBBRLR
+FFBBBFFLRR
+FBFBBBBRRR
+BFBBBBBRLL
+BFBFFBBRRR
+FBFBBFBRLL
+FBFFBFBLRL
+FBBFBBBRLL
+FBFBBBBLRL
+FBFFFBBLLR
+BBFFFBFRRL
+FBFBFBBRLL
+BFBBBBBRLR
+BFBFFFFRLR
+FBFBBFBLRR
+BFBBFBFRLR
+BBFFBBBLLL
+BFFFFFFRRR
+BFBBBFBLRL
+FBFBBFFLLR
+FBFBBFFRLR
+FFFBFBBLLR
+FFBBFFFRLL
+BFBFFFFLRR
+FFFFBBBRRL
+BFFFBFFRRR
+BFFFBFBRLL
+FFFFBFFRRL
+BFFFBBFRRL
+FFFBBFFLLL
+BFBBFFBRRL
+FBFBFFFRRR
+FBFBFBFLRL
+BFBFBFBLLL
+FBBBFFBRLL
+FBFFBBBLRL
+BFBFFFFRRL
+BFFBBFBLLL
+FBFFFBBRLR
+BBFBFFFRLL
+FFBFBFFLRL
+FBBFBBBLRL
+BBFBFFFLRR
+BBFBFFBRRR
+BFFBFFBRLR
+BBFFBBFRRL
+FBFBBBFLRR
+FBBFFFFLLL
+BFFBBFBLRR
+BFBFFFFLLL
+BFFBBBBRLL
+FFBFFBFLLL
+FBBBBFBLLR
+BBFFFBFLLR
+BFBBBFBRLL
+FBFFFFBRLR
+FFBBBFFRRL
+FFBFFFBRRR
+BFFBFFFRLL
+FFFBFBBLLL
+FFFBBBFLLL
+BFBBFBFRLL
+BFBFFFBRLR
+FBBFBBFRLL
+FBBBFBFRRL
+FFBFBFFRLR
+BFBBFBBLLR
+FBBFBFBRLR
+BBFFFBBLLL
+FBFBFFFLLL
+BBFBFFFRRR
+FBFBBFBLRL
+FFBBBFBRLR
+BFBBFFBRLR
+FBFFBBBLRR
+FFBBFFBRRR
+BBFFBFBRRL
+FFBBBFFRRR
+BFBFFBFLRL
+FBFFFFBLLL
+BBFFFFBRRL
+BBFFFFBLRR
+FFBBFFBRLL
+BFBBFFFLLL
+FBBFBFBLLL
+FBBBFFFLRL
+FBFBBBBRRL
+FFFBBBFRRR
+FFBFFBBRRR
+FBFFFFFLRL
+BFFBFBFLRR
+BBFFBBBRRR
+FBFFFFFRRL
+FBBFBFBLRR
+BFFBBBBLLL
+FBBBFFFLLR
+BFFFFBFLLL
+FFBFBFBLLR
+FBFFFBBRLL
+BFFFBFBRLR
+FBBBFBFLLR
+FBBBBFFLLR
+BFFFFBBLLR
+FFBBBBBRLR
+BFFFBFBLRR
+FBBBFFBLLR
+FBFFBFBRRL
+FBFBFBBRRR
+FBBBBBBLRR
+FFBBBBBRRL
+FBFFFFBLLR
+BBFBFFBRLL
+FFFBBBFRLR
+FBFFFBBLLL
+FBFFBBBLLR
+BFBFBBFRRL
+BBFFBFBRLL
+BFFFBBFRRR
+BFFBBFBLRL
+FBBBFBFLRR
+FFFBFBFRRR
+FFBBBFBLRR
+BFBFBBFRRR
+FFBBBFBRLL
+BFFFBBBLLL
+BFFFBFBRRL
+BFFBFBBRLL
+FBBFFFFLRL
+FFFFBFFRLR
+FFFBBBBRRL
+BFFBFBFRRL
+FFFBBFBRRR
+FFBFBFBLRR
+FFFFBBFLRL
+BBFFFFBLRL
+BFBBBBBRRL
+FBBBBBFLLL
+FBFFBFFLRL
+FFBFBBBRRR
+FBFBBBBRLL
+BBFFFBBRRL
+FFBBFBFRRL
+FFBBBFFRLR
+FFFBFBFRLL
+FBBFBFBLLR
+FFBBBBBLLR
+FBFBFFBLLR
+BFFFBBFRLR
+FFBBFFFRRL
+FFFFBBFLRR
+BBFFFFFRRR
+FFBBFFBLLR
+FBFFFFBLRR
+FFFFBFFRLL
+BFBBFFFRLL
+BFBBFFBRLL
+BBFFFBBRLR
+FFBFFFFRRR
+BFBFBFBRRR
+FFBBFBFLLR
+BFFBBBFRLL
+FBBBFFFRRR
+BFBBBBBLLL
+FFBFFFFLRR
+FBFFFFBRLL
+BFFFFBFRRL
+FBBBBBBRRR
+FFFFBBFLLL
+FBFFBFFLRR
+FFFBBBFRRL
+FBBFFFBRRL
+BFBFBBBRLL
+BBFFFBFLRR
+FBBFBFBRRL
+FBBFFFFLRR
+BFBBBFBLLL
+BFFFFFBRRL
+BBFFFBBLRR
+BFFFFFBLRR
+BFBBBBFLRL
+FBFBFFBRRL
+BBFFFFFLRR
+FFFFBBBLLR
+BFBBFBFLLL
+FBBFFFBRRR
+FFBBBFBRRR
+FFBFBFFRLL
+FFBBFBBLRL
+FBBFFBFRRL
+FFFBBFBLRL
+FFBBFFBLRR
+BFFFFBBLLL
+FBBFBBFLRL
+FFFBFFBLRL
+FBBFFBBRRL
+FBFFFBFRRR
+BFBBBFFLRL
+FFFFBFFLLL
+FBFFFFFRLL
+BFBFFFFRLL
+FFBFBBBLRL
+BFFBBBBLLR
+BFFBBBFRRL
+FFBBBBFLLR
+FFFBFBFLRR
+FBFFBFFRLR
+BFBFBBBRLR
+BFFBFFFLLR
+FFFFBFBLLR
+FBFFBFBLRR
+BFFBFBFRRR
+BFFBFFBLRL
+FBBBBBFRRR
+BFBBFFBLRL
+FFBBFBBRRL
+FBFFBFFRLL
+FFBFFBFLLR
+BFBBBBBLRR
+BFFBBFFLRL
+FBBBFBBRRL
+BBFFBBBLRR
+BBFFFBFRRR
+FBFFBFBRLR
+FBFBFFBRLR
+BBFFFFBLLL
+FBBFBFFRRR
+FFBBFBFRLL
+FFFFBFBLRR
+FBFBFFFRRL
+FBBFBBFRRL
+FFBFFBFLRL
+FFBFBFBRRR
+FFFFBBFRRL
+BFFBBBFRLR
+FFBFBBBRRL
+BFFBFBBLLL
+FBBBBFFRRL
+FFFBFBFRLR
+FFBFFBBLRL
+BFFBFFBLRR
+FBBBFFFRLR
+FBBBFFBRLR
+FBBBBBBLLR
+FBBFBFFLLR
+BBFFBFFRRL
+FBBBBBFRRL
+FFFBBFFRLL
+FFFBBFFLRL
+FFBFFBBLRR
+FBBFFFBLLL
+FFFFBBFRLL
+FFBFFBBLLR
+BFFFBFFLLL
+BFFBBFBRLL
+FBBFFFBRLR
+FFFBFBBLRR
+BFBFFBBLRL
+FBFFFBFRLR
+BFBFFFFLRL
+BFBBBBBLLR
+FFFBBFFLLR
+BFBFFFBLLR
+FFFFBBFLLR
+FBBFBBFLRR
+FBBBFBBLLR
+BFFFFFBRRR
+FBFBFFFLLR
+FBFBBBBRLR
+FFFBFFBLLR
+FFFBBFBLLL
+BFFBFBBRRL
+BFBFBBBLRL
+BFFFBBFRLL
+FBBFFBFLRL
+BFBFBBBRRR
+FFFBFFBRRR
+BFFFBFFLRL
+BBFFBBFRLR
+FFFBBBBLRL
+FBBFFFFRRL
+FBFFBFFRRL
+BFFFFFBRLL
+FBFBBFBRRR
+FBFBBBFLRL
+FBFFBBBLLL
+FFFFBBBRRR
+FBBBFBBLRL
+BFBFFBBRLL
+FBFBBBFRLR
+FFFBBBFLRR
+BFFBFFFRLR
+BFBFFBFRLR
+BFBBFFFLLR
+FBFFBBBRRR
+FBBBFFBLRL
+BFBFBBBLRR
+FBBBBBFLRR
+FBBBBBBRLR
+BFBFFFFRRR
+BFBBBBFLRR
+BFBBFFFRRR
+FFBFBFFLLL
+FBFFFBFLRL
+BFBBFBFLLR
+BFFBBBFLLR
+FBBFBFBRRR
+FFBFFBFRLL
+BFFFBFFLRR
+FBFBBFFLLL
+FFFBFBBRRR
+FBBBFBBRLR
+BFFFBBBRRR
+FFFBFBFLLR
+BFFBFBBLRL
+FBFBBFFRLL
+BFBBFBBLRR
+FFFBBBBRLR
+BFFFFFFLRR
+FBFFBBFLRL
+BFBFFFBRRL
+BBFFBFFLLL
+FFBBFBBRRR
+BFBFFBFRRL
+BFFFFBBLRL
+BFBBFFFLRL
+FBFFFBFLLL
+FBBFFBBRLL
+FFBBFFBRLR
+FFFBFFBLRR
+BFBFBFFLRL
+FBBBBFBRRR
+FBBFFBFLRR
+BFFBBFBRRR
+FFFBFFBRLL
+FFBFBFFLRR
+FFFBFFFLRL
+BFBFBFBRRL
+BFFFFBFRRR
+FFBFBBBRLR
+BFFBFFBRRR
+FBBBFBFRRR
+FBBBBBFRLL
+BBFBFBFLLL
+FBFFFBBRRL
+FBBBBFBRLL
+BBFFBFBRLR
+FFFFBFBLLL
+FFBFBBBLLR
+FFFBBFBRLR
+BFBFFBBRRL
+FFBFBFBRRL
+FFBFBFBRLR
+FFFBBBFRLL
+FFBFBBFRLL
+FFFFBFBRRR
+FFFFBFBRLR
+BBFFFFFLLL
+BFBFFFBLLL
+BFBBBFFRRR
+FBBBBBBLLL
+FFBFBBBRLL
+FBFBBBFLLL
+FBBBFFBRRR
+BFBBFBFLRR
+FFFBBFBLLR
+FFFBBBBRRR
+FFBFBFBLRL
+FFBBFFFLRR
+FBBFBFBLRL
+FBBFFBBRLR
+FBBFFBBRRR
+BFBFFBFLLL
+FBFFFFBLRL
+FFBBBBBRLL
+FBFBFBBLRL
+FBFFFFBRRL
+BFBBBFBRRR
+FFFBBBFLRL
+FBFBFBFLRR
+BFFBFFBLLR
+BFBFBFBRLR
+FBBFBBFRRR
+BFBFFBBLLR
+BFBFFFBLRR
+FBBBBBFLRL
+BFFFBFBLLR
+BBFFFFBRLR
+BBFBFFFRRL
+BBFBFFBLRL
+BBFFFBFLRL
+FFBBFFFLRL
+FBBBFBFRLL
+BFFFFBFRLL
+FBBBFFFLRR
+FFBFFBFRRR
+FBBBFBFRLR
+FFBFBFFRRL
+FBFBBFBLLL
+FFBBBFBLRL
+FFBBBBFRRR
+FBFBFBBLLR
+FBBBBFBLRL
+FFBBBFFLLL
+FBFFBBFLRR
+FBFBFBBRLR
+BBFFBBFLRR
+FBFBBBFRRL
+BFFBBFFRRR
+BBFFFBBRRR
+BFFBBBBRRL
+BBFFFFFLLR
+BFBBBFFLLR
+BBFBFFFLLL
+BFFBBBFLRL
+BFBFFBFLRR
+FBBFBFBRLL
+BFFFFFBLLR
+BFBFBBFRLL
+FBBFBBBRRR
+FFBFFFBRRL
+BFBBBBFRRR
+BFFFBBFLLR
+FBBBFFFLLL
+FBFFFFFLLR
+FFBFFFFRRL
+FFBBFFFRLR
+FBFBFFFRLL
+FFBBBBBLRL
+FBFFBFBLLR
+BFBFBBFLRL
+BFFFBFFRLR
+BBFFBBFLRL
+BFFBFFBRLL
+BFFFFBBLRR
+BFBFBBBLLR
+BFFBBBBRLR
+FBBBBFFRRR
+BBFFBBBLRL
+FBBBFFFRLL
+FBBFFFFRRR
+FFBBBFFLLR
+BBFFBBFLLR
+BFFBBBBRRR
+BFBBFFBLLR
+BFBFBBBLLL
+BFFBBFBLLR
+BFBBFBFRRR
+BFFFBFBRRR
+BFBBBFFLLL
+BBFFBFFRLL
+FBBFFFBLRL
+FFFBFFFLLL
+BFBBBFBLRR
+FFBBBBFRLR
+BFFBFBFLRL
+BFBFBFBLLR
+BBFFFBBLLR
+FBFBFFFLRR
+FFBFBFFLLR
+FFBBFFBLLL
+BFBFBFFRRR
+FBFBBBBLLR
+BFBFBBFLLR
+FBBFFBBLLL
+FBFFBBBRLR
+FBFFBBBRLL
+FBFFBFFLLR
+BFFBBBFRRR
+BFFFFFFLLR
+BFBBFBFRRL
+FFBFFBBRLR
+FBBBBFFRLR
+BFFBFFFRRL
+FFBFBBFLLL
+FFFBFBBRLL
+FFFBBBBRLL
+FBBFBBBRLR
+FFFBFBBRRL
+FFBBFFFRRR
+BFFFFFFRRL
+FFBBFFBLRL
+BFFFFFBRLR
+BFFBBBFLLL
+FBFFBFFLLL
+FFBFFFFLRL
+FFFFBBBLRL
+FBFBBFFRRR
+FBFFBBFRLL
+BFFFFFFLLL
+FFBFFFBLLL
+BFBFBBFLRR
+FBBFFFFLLR
+BFBFBFFRLR
+BFBBFFFRLR
+BFBBBFFRLR
+BFFBBFFLRR
+BBFFBBBRLL
+FBBFFFFRLL
+BFFFFBBRRL
+FBFBBFBRRL
+BFFBFFFRRR
+FFBFFBFRRL
+BFFFFBBRLR
+BFFFFBFLRL
+BFBBBFFRRL
+FBBBFBFLLL
+BFFBFBBLLR
+FBFBFBBLRR
+FBBFBBBLRR
+BFBFBFFLLR
+BFFBBBBLRL
+BFFFFFFRLL
+FFFBFFFRLR
+FFBBFBFLRL
+FBFBFFBLLL
+BBFFBFFRLR
+FBBFBBFLLL
+BFBBFBBRRR
+FBBBBFFRLL
+BFBBBFBLLR
+FFBFFFBLLR
+FFFBFFFLRR
+FBFBFBFRLR
+BBFFFFBRRR
+FBBFBBBLLR
+BFBBBFBRRL
+BBFBFFBLLR
+FFBFBBBLRR
+FFBBBFBLLL
+FBBBFFBLRR
+FFFBFBFLRL
+FBFFBBFRRL
+FFFBBBFLLR
+BFFFBBBLRL
+BBFFFBBRLL
+BBFFFBFLLL
+FBBFBFFLRL
+FFFBFBBRLR
+FFBFBBFRLR
+FBBBFBBLRR
+FBFFBFBRRR
+BFFBBFFLLL
+FFBBFFFLLL
+FFFBFFBRLR
+FFBBFBFLLL
+FBBFBBFLLR
+FFFFBFFLLR
+BFFBFBBRLR
+FBFBFFBRLL
+BBFFFFFRLL
+BBFBFFFLRL
+FFFBFFFRRR
+BFFBFBFLLR
+FFBBBFBLLR
+FBFFBBFLLL
+FBFFFBBLRR
+BBFFBBBRRL
+FBFBBFBLLR
+FFFBFFFLLR
+BBFFBFFRRR
+FBBFFBBLRL
+FBBFBFFRLR
+BBFBFFFRLR
+BFBFBFBLRR
+FFBBFBBRLR
+FFFBFFFRLL
+BBFFBBBLLR
+FBBBBFBLRR
+FBFBFBFLLR
+BFFFFBFLRR
+BFFFFBBRLL
+FBBBBBBRLL
+FBBBBBFRLR
+BFFFBFBLRL
\ No newline at end of file
diff --git a/day05/src/main.rs b/day05/src/main.rs
new file mode 100644
index 0000000000000000000000000000000000000000..64442fef0b1547097fbbed2c7c4ae4738c52a927
--- /dev/null
+++ b/day05/src/main.rs
@@ -0,0 +1,80 @@
+use std::fs::File;
+use std::io::{self, prelude::*, BufReader};
+
+struct Seat {
+    row: i64,
+    col: i64
+}
+
+impl Seat {
+    fn id(&self) -> i64 {
+        self.row * 8  + self.col
+    }
+}
+
+fn check_borading_passes(boarding_passes: &mut Vec<String>) -> Vec<Seat> {
+    boarding_passes
+        .iter()
+        .map(|boarding_pass| {
+            let (row_bits, col_bits) = boarding_pass.split_at(7);
+            let row_bits = &row_bits
+                            .replace("F", "0")
+                            .replace("B", "1");
+            let col_bits = &col_bits
+                            .replace("L", "0")
+                            .replace("R", "1");
+            let row = i64::from_str_radix(row_bits, 2).unwrap();
+            let col = i64::from_str_radix(col_bits, 2).unwrap();
+            Seat{
+                row: row,
+                col: col,
+            }
+        })
+        .collect()
+}
+
+fn main() -> io::Result<()> {
+    println!("Advent of Code 2020 – Day 5:");
+
+    let file = File::open("input.txt")?;
+    let reader = BufReader::new(file);
+
+    let mut input = reader
+        .lines()
+        .map(|l| {
+            String::from(l.unwrap())
+        })
+        .collect::<Vec<String>>();
+
+    let seats = check_borading_passes(&mut input);
+
+    let highest_seat_id = seats
+                            .iter()
+                            .map(|s| s.id())
+                            .max()
+                            .unwrap();
+
+    println!("Answer Part 1: {}", highest_seat_id);
+
+    let mut sorted_seat_ids = seats
+                            .iter()
+                            .map(|s| s.id())
+                            .collect::<Vec<i64>>();
+    
+    sorted_seat_ids.sort();
+
+    let mut last = sorted_seat_ids[0]-1;
+    let mut canidate = 0;
+
+    for id in sorted_seat_ids.iter() {
+        if last + 2 == *id {
+            canidate = last + 1;
+            break;
+        }
+        last = *id;
+    }
+    
+    println!("Answer Part 2: {:?}", canidate);
+
+    Ok(())
+}