
pub fn puzzle(input: &str) -> usize {
    0
}

#[cfg(test)]
mod test {
    use super::*;

}


pub fn puzzle(input: &str) -> usize {
    let initial_world_state = WorldState {

    };
    let mut queue = vec![initial_world_state];
    while !queue.is_empty() {
        let world = queue.remove(0);

    }

    panic!("Exhausted all possible moves without finding end condition!");

}

pub struct WorldState {

}

#[cfg(test)]
mod test {
    use super::*;

}

Set up a BFS queue
Set up a BFS queue
