[Grafos - Matriz Adjacência] - Contar quantidade de caminhos

Pessoal, por gentileza, estou travado na construção de um projeto que consiste em contar a quantidade de caminhos, após receber um valor inteiro, entre os vértices de um grafo.

Por exemplo - Se fizer meu grafo da seguinte maneira: {{0,1,1,0,1}, {1,0,0,1,1},{1,0,0,0,0},{0,1,0,0,0},{11000} }

A matriz de Adjacência tamanho 2 desse grafo me resultaria [31011,13101,01101,10011,11112].

`
int[][] a;
int[][] at;
int[][] res;

public void criarTransposta(int[][] a, int[][] at) {
    for (int linha = 0; linha < a.length; linha++) {
        for (int coluna = 0; coluna < a.length; coluna++) {
            at[coluna][linha] = a[linha][coluna];
        }
    }
}

public int calcularProdutoEscalar(int[] a, int[] b) {
    int soma = 0;
    for (int i = 0; i < a.length; i++) {
        soma += a[i] * b[i];
    }
    return soma;
}

public void calcularProdutoMatrizes(int[][] a, int[][] at, int[][] res) {
    for (int i = 0; i < a.length; i++) {
        for (int j = 0; j < a.length; j++) {
            res[i][j] = calcularProdutoEscalar(a[i], at[j]);
        }
    }
}

`
Imagem do sistema.

Algúem pode me dizer de que maneira eu passo uma matriz de adjacência no campo de Entrada, o valor do tamanho do caminho e a saída?

Valeu pessoal.