Erro leitura da matriz - ajuda a padawan de JAVA

Oi galera eu tenho um programa que apresenta o erro
exception in thread “main” java.lang.ArrayIndexOutOfBoundsException:

o erro é na leitura da matriz do código.

int [][] salao = new int [linhas][colunas];

for (int a = 1; a <= linhas; a++){
for (int b= 1; b <=colunas; b++){
salao [a][b] = sc.nextInt(); erro nessa linha

eu tentei ler a matriz com length, mas da erro tbm… da um help por favor T_T

Troque por isso:

    for (int a = 0; a < linhas; a++) {
        for (int b = 0; b < colunas; b++) {
            System.out.print("Digite a posição [" + (a+1) + "][" + (b+1) + "] da matriz: ");
            salao[a][b] = sc.nextInt();

A matriz começa em 0, e você vai até ANTES da última posição (a < linhas) porque se correr até a última (a <= linhas), como ela começa em zero, vai sair dos limites (out of bounds).