Ciao a tutti!

Mi serve un po' del vostro aiuto..
/*
*C'è una matrice A di dimensione MxN di caratteri ed un array B di lunghezza L=MxN. In ogni ennupla di B ci sono solo maiuscoli o solo minuscoli.
*Bisogna scrivere un programma che copi in A i valori di B inserendo ogni ennupla in una riga in modo che nelle prime righe siano inserite le ennuple con caratteri maiuscolo e nelle ultime righe le ennuple con caratteri minuscoli..

Ex: M=5,N=3,L=15

B="lol PAL YES kit POP"

A=
PAL
YES
POP
lol
kit
*/

Sto cercando di risolvere questo esercizio sui array bidimensionali. E sono riuscito ad identificare quali sono le ennuple di caratteri maiuscoli e quelli minuscoli. Ma nel momento in qui queste ennuple devono essere copiate nella matrice, non so come si deve applicare i vari cicli in maniera adatta. Qualcuno mi può dare una mano con la funzione copia..?

Ecco quello che sono riuscito a fare fino ad ora..:
codice:
#include<stdio.h>

int colmax;

void copia(char A[][colmax],char B[],int M,int N,int i){
    //Qui vengono copiati i caratteri del B in A ... ?!?help!


    
}

void controlla(char A[][colmax],char B[],int M,int N,int L){
    int i,colonna,riga;

//Cerca le ennuple maiuscoli    
    for(i=0;i<L;i+=N){
        if(B[i]>='A' && B[i]<='Z'){
            copia(A,B,M,N,i);
        }
    }

//Cerca le ennuple minuscoli
    for(i=0;i<L;i+=N){
        if(B[i]>='a' && B[i]<='z'){
            copia(A,B,M,N,i);
        }
    }

//Stampa matrice A
    for(riga=0;riga<M;riga++){
        for(colonna=0;colonna<N;colonna++){
            printf("%c ",A[riga][colonna]);
        }
        printf("\n");
    }

}

int main(){
    int M=5,N=3,L=M*N;
    char B[]="casMARSONpalESA";
    char A[M][N];

    colmax=N;
    controlla(A,B,M,N,L);
    printf("\n\n");
    system("pause");
    return 0;
}
Qualsiasi tipo di aiuto verrà apprezzato tanto!
Grazie!