#include <stdio.h>
#include <stdlib.h>
 
 int main() { 
     int m, n;
     scanf("%d %d", &m, &n);
     if(m < 1 || m > 10 || n < 1 || n > 10) {
         printf("Invalid Input");
         return 0;
         
     }
     int **arr = (int **)malloc(m * sizeof(int *));
     if(arr = NULL) {
         printf("Memory allocation error");
         return 0;
     }
     for (int i = 0; i < m; i++) {
         arr[i] = (int *)malloc(n *sizeof(int));
         if (arr[i] == NULL) {
             printf("Memory allocation error");
             for(int j = 0; j < i; j++) 
             free(arr[j]);
             free(arr);
             return 0;
         }
     }
     for (int i=  0; i < m; i++) {
        for( int j = 0; j < n; j++) {
             arr[i][j] = (i + 1) * (j + 1);
             printf("%d", arr[i][j]);
             if(j < n - 1) printf(" ");
             
         }
         printf(" ");
     }
     for(int i = 0; i < m; i++) {
         free(arr[j]); 
         
     }
     free(arr);
         printf("Memory freed successfully");
         return 0;
     }