Attempt to use a non-constant value in a constant

Thanks,
As I need 2D array, I used it as:

fn foo(x: &[&Vec<i32>], y: &[&Vec<i32>]) {
    let n = x.len();   // 3
    let m = x[0].len();  // 3
    let mut array: Vec<Vec<i32>> = vec![vec![Default::default(); n]; m];
}