Lesson Explainer: Properties of Matrix Multiplication | Nagwa Lesson Explainer: Properties of Matrix Multiplication | Nagwa

Lesson Explainer: Properties of Matrix Multiplication Mathematics

In this explainer, we will learn how to identify the properties of matrix multiplication, including the transpose of the product of two matrices, and how they compare with the properties of number multiplication.

To begin the discussion about the properties of matrix multiplication, let us start by recalling the definition for a general matrix.

Definition: Matrix Multiplication

Suppose that 𝐴 is a matrix with order 𝑚×𝑛 and that 𝐵 is a matrix with order 𝑛×𝑝 such that 𝐴=𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎,𝐵=𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏.

Then, the matrix product 𝐴𝐵=𝐶 is a matrix with order 𝑚×𝑝, with the form 𝐴𝐵=𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐, where each entry 𝑐 is the pairwise summation of entries from 𝐴 and 𝐵 given by 𝑐=𝑎𝑏=𝑎𝑏++𝑎𝑏.

It should already be apparent that matrix multiplication is an operation that is much more restrictive than its real number counterpart. For one, we know that the matrix product 𝐴𝐵 can only exist if 𝐴 has order 𝑚×𝑛 and 𝐵 has order 𝑛×𝑝, meaning that the number of columns in 𝐴 must be the same as the number of rows in 𝐵.

Another thing to consider is that many of the properties that apply to the multiplication of real numbers do not apply to matrices. For instance, for any two real numbers 𝑎 and 𝑏, we have 𝑎𝑏=𝑏𝑎.

This is known as the commutative property.

If matrix multiplication were also commutative, it would mean that 𝐴𝐵=𝐵𝐴 for any two matrices 𝐴 and 𝐵. Assuming that 𝐴 has order 𝑚×𝑛 and 𝐵 has order 𝑛×𝑝, then calculating 𝐵𝐴 would mean attempting to combine a matrix with order 𝑛×𝑝 and a matrix with order 𝑚×𝑛. This means that 𝐵𝐴 is only well defined if 𝑚=𝑝. Immediately, this shows us that matrix multiplication cannot always be commutative for the simple reason that reversing the order may not always be possible.

Let us suppose that we did have a situation where 𝑚=𝑝. Consider the two matrices 𝐴=2310809,𝐵=645104.

Since 𝐴 is a 2×3 matrix and 𝐵 is a 3×2 matrix, the product 𝐴𝐵 exists and is a 2×2 matrix. Let us demonstrate the calculation of the first entry,

where we have computed 2(6)+35+100=3. We can continue this process for the other entries to get the following matrix: 𝐴𝐵=2310809645104=335484.

However, let us now consider the multiplication in the reversed direction (i.e., 𝐵𝐴). Since 𝐵 is a 3×2 matrix and 𝐴 is a 2×3 matrix, the result will be a 3×3 matrix. For the first entry, we have

where we have computed (6)2+(4)8=44. Repeating this process for the remaining entries, we get 𝐵𝐴=6451042310809=44189618155932036.

So, even though both 𝐴𝐵 and 𝐵𝐴 are well defined, the two matrices are of orders 2×2 and 3×3, respectively, meaning that they cannot be equal. In fact, the only situation in which the orders of 𝐴𝐵 and 𝐵𝐴 can be equal is when 𝐴 and 𝐵 are both square matrices of the same order (i.e., when 𝐴 and 𝐵 both have order 𝑛×𝑛). However, even in that case, there is no guarantee that 𝐴𝐵 and 𝐵𝐴 will be equal. This is a general property of matrix multiplication, which we state below.

Property: Noncommutativity of Matrix Multiplication

If 𝐴 and 𝐵 are matrices of orders 𝑚×𝑛 and 𝑛×𝑚, respectively, then generally, 𝐴𝐵𝐵𝐴.

In other words, matrix multiplication is noncommutative.

We note that although it is possible that matrices can commute under certain conditions, this will generally not be the case. To see this, let us consider some examples in order to demonstrate the noncommutativity of matrix multiplication. In the first example, we will determine the product of two square matrices in both directions and compare their results.

Example 1: Calculating the Multiplication of Two Matrices in Both Directions

Given that 𝐴=4224,𝐵=3311, find 𝐴𝐵 and 𝐵𝐴.

Answer

In this example, we want to determine the matrix multiplication of two 2×2 matrices in both directions.

Since both 𝐴 and 𝐵 have order 2×2, their product in either direction will have order 2×2. Let us consider the calculation of the first entry of the matrix 𝐴𝐵. We have

where we have computed (4)(3)+2(1)=10. We continue doing this for every entry of 𝐴𝐵, which gets us the following matrix: 𝐴𝐵=42243311=1014210.

It remains to calculate 𝐵𝐴, which we can do by swapping the matrices around, giving us 𝐵𝐴=33114224=6666.

We note that 𝐴𝐵 is not equal to 𝐵𝐴, meaning in this case, the multiplication does not commute.

Let us consider another example where we check whether changing the order of multiplication of matrices gives the same result.

Example 2: Verifying Whether the Multiplication of Two Matrices Is Commutative

Consider the 2×2 matrices 𝐴=1100 and 𝐵=0101. Is 𝐴𝐵=𝐵𝐴?

Answer

In this example, we want to determine the matrix multiplication of two 2×2 matrices in both directions in order to check the commutativity of matrix multiplication.

Computing the multiplication in one direction gives us 𝐴𝐵=11000101=0200.

Meanwhile, the computation in the other direction gives us 𝐵𝐴=01011100=0000.

If we examine the (1,2) entry of both matrices, we see that 20, meaning the two matrices are not equal. Therefore, 𝐴𝐵𝐵𝐴.

Having seen two examples where the matrix multiplication is not commutative, we might wonder whether there are any matrices that do commute with each other. Let us recall a particular class of matrix for which this may be the case.

Definition: Diagonal Matrix

Suppose that 𝐴=𝑎 is a square matrix (i.e., a matrix of order 𝑛×𝑛). Then, 𝐴 is a diagonal matrix if all the entries outside the main diagonal are zero, or, in other words, if 𝑎=0 for 𝑖𝑗. That is to say, matrices of this kind take the following form: 𝐴=𝑎000𝑎000𝑎.

In the 2×2 and 3×3 cases (which we will be predominantly considering in this explainer), diagonal matrices take the forms 𝐴=𝑎00𝑎,𝐴=𝑎000𝑎000𝑎.

Now, in the next example, we will show that while matrix multiplication is noncommutative in general, it is, in fact, commutative for diagonal matrices. In particular, we will consider 2×2 diagonal matrices.

Example 3: Verifying a Statement about Matrix Commutativity

True or False: If 𝐴 and 𝐵 are both 2×2 matrices, then 𝐴𝐵 is never the same as 𝐵𝐴.

Answer

In this example, we want to determine whether a statement regarding the possibility of commutativity in matrix multiplication is true or false.

In order to prove the statement is false, we only have to find a single example where it does not hold. To do this, let us consider two arbitrary diagonal matrices 𝐴 and 𝐵 (i.e., matrices that have all their off-diagonal entries equal to zero): 𝐴=1002,𝐵=3001.

Computing 𝐴𝐵, we find 𝐴𝐵=10023001=3002.

Next, if we compute 𝐵𝐴, we find 𝐵𝐴=30011002=3002.

Thus, since both matrices have the same order and all their entries are equal, we have 𝐴𝐵=𝐵𝐴. This proves that the statement is false: 𝐴𝐵 can be the same as 𝐵𝐴.

The phenomenon demonstrated above is not unique to the matrices 𝐴 and 𝐵 we used in the example, and we can actually generalize this result to make a statement about all diagonal matrices.

Property: Commutativity of Diagonal Matrices

If 𝐴 and 𝐵 are both diagonal matrices with order 𝑛×𝑛, then the two matrices commute. In other words, 𝐴𝐵=𝐵𝐴.

To prove this for the 2×2 case, let us consider two diagonal matrices 𝐴 and 𝐵: 𝐴=𝑎00𝑎,𝐵=𝑏00𝑏.

Then, their products in both directions are 𝐴𝐵=𝑎00𝑎𝑏00𝑏𝐵𝐴=𝑏00𝑏𝑎00𝑎=𝑎𝑏00𝑎𝑏,=𝑏𝑎00𝑏𝑎.

Thus, 𝐴𝐵=𝐵𝐴 for any two 2×2 diagonal matrices. Note that the product of two diagonal matrices always results in a diagonal matrix where each diagonal entry is the product of the two corresponding diagonal entries from the original matrices. Thus, it is easy to imagine how this can be extended beyond the 2×2 case.

It is important to note that the property only holds when both matrices are diagonal. For example, consider the two matrices 𝐴=7003,𝐵=10583, where 𝐴 is a diagonal matrix and 𝐵 is not a diagonal matrix. In this instance, we find that 𝐴𝐵=7035249,𝐵𝐴=7015569.

Therefore, even though the diagonal entries end up being equal, the off-diagonal entries are not, so 𝐴𝐵𝐵𝐴.

In spite of the fact that the commutative property may not hold for all diagonal matrices paired with nondiagonal matrices, there are, in fact, certain types of diagonal matrices that can commute with any other matrix of the same order. Let us consider a special instance of this: the identity matrix.

Definition: Identity Matrix

An identity matrix (also known as a unit matrix) is a diagonal matrix where all of the diagonal entries are 1. in other words, identity matrices take the form 𝐼=100010001, where 𝐼 denotes the identity matrix of order 𝑛×𝑛 (if the size does not need to be specified, 𝐼 is often used instead).

In the majority of cases that we will be considering, the identity matrices take the forms 𝐼=1001,𝐼=100010001,𝐼=1000010000100001.

A key property of identity matrices is that they commute with every matrix 𝐴 that is of the same order. However, they also have a more powerful property, which we will demonstrate in the next example.

Example 4: Calculating Matrix Products Involving the Identity Matrix

Given that 𝐴=14111 and 𝐼 is the identity matrix of the same order as 𝐴, find 𝐴×𝐼 and 𝐼×𝐼.

Answer

Recall that the identity matrix is a diagonal matrix where all the diagonal entries are 1. Given that 𝐴 is a 2×2 matrix and that the identity matrix is of the same order as 𝐴, 𝐼 is therefore a 2×2 matrix, of the form 𝐼=1001.

We have been asked to find 𝐴×𝐼 and 𝐼×𝐼, so let us find these using matrix multiplication. First, we have 𝐴×𝐼=141111001=14111=𝐴.

Next, we have 𝐼×𝐼=10011001=1001=𝐼.

Thus, we have shown that 𝐴×𝐼=𝐴 and 𝐼×𝐼=𝐼.

The last example demonstrated that the product of an arbitrary matrix with the identity matrix resulted in that same matrix and that the product of the identity matrix with itself was also the identity matrix. In fact, had we computed 𝐼𝐴, we would have similarly found that 𝐼×𝐴=100114111=14111=𝐴.

So, 𝐴𝐼=𝐼𝐴=𝐴, meaning that not only do the matrices commute, but the product is also equal to 𝐴 in both cases.

One might notice that this is a similar property to that of the number 1 (sometimes called the multiplicative identity). For the real numbers, namely for any real number 𝑎, we have 𝑎1=1𝑎=𝑎.

This is, in fact, a property that works almost exactly the same for identity matrices.

Property: Multiplicative Identity for Matrices

The identity matrix 𝐼 is the multiplicative identity for matrix multiplication. That is, for any matrix 𝐴 of order 𝑚×𝑛, then 𝐴𝐼=𝐼𝐴=𝐴, where 𝐼 and 𝐼 are the 𝑛×𝑛 and 𝑚×𝑚 identity matrices respectively.

We note that the orders of the identity matrices used above are chosen purely so that the matrix multiplication is well defined. In the case that 𝐴 is a square matrix, 𝑚=𝑛, so 𝐼=𝐼.

Let us prove this property for the 2×2 case by considering a general 2×2 matrix 𝐴=𝑎𝑎𝑎𝑎.

If we calculate the product of this matrix with the identity matrix 𝐼, we find that 𝐴𝐼=𝑎𝑎𝑎𝑎1001=𝑎𝑎𝑎𝑎=𝐴.

Reversing the order, we get 𝐼𝐴=1001𝑎𝑎𝑎𝑎=𝑎𝑎𝑎𝑎=𝐴.

Thus, it is indeed true that 𝐴𝐼=𝐼𝐴=𝐴 for any 2×2 matrix 𝐴, and it is equally possible to show this for higher-order cases.

So far, we have discovered that despite commutativity being a property of the multiplication of real numbers, it is not a property that carries over to matrix multiplication. However, even though this particular property does not hold, there do exist other properties of the multiplication of real numbers that we can apply to matrices. Let us consider them now.

Recall that for any real numbers 𝑎, 𝑏, and 𝑐, we have (𝑎𝑏)𝑐=𝑎(𝑏𝑐).

This is known as the associative property. The associative property means that in situations where we have to perform multiplication twice, we can choose what order to do it in; we can either find 𝑎𝑏, then multiply that by 𝑐, or we can find 𝑏𝑐 and multiply it by 𝑎, and both answers will be the same.

To investigate whether this property also applies to matrix multiplication, let us consider an example involving the multiplication of three matrices.

Example 5: Investigating the Associative Property of Matrix Multiplication

Given that 𝐴=032161,𝐵=5614,𝐶=3042, is it true that (𝐴𝐵)𝐶=𝐴(𝐵𝐶)?

Answer

In this example, we are being tasked with calculating the product of three matrices in two possible orders; either we can calculate 𝐴𝐵 and then multiply it on the right by 𝐶, or we can calculate 𝐵𝐶 and multiply it on the left by 𝐴.

Let us begin by finding 𝐴𝐵. Since 𝐴 is 3×2 and 𝐵 is 2×2, 𝐴𝐵 will be a 3×2 matrix. To demonstrate the process, let us carry out the details of the multiplication for the first row. We have

where we have calculated 0(5)+31=3. For the next entry in the row, we have

since 0(6)+34=12. Repeating this process for every entry in 𝐴𝐵, we get 𝐴𝐵=0321615614=31211163140.

Next, to find (𝐴𝐵)𝐶, we multiply this matrix on the right by 𝐶. This gives us (𝐴𝐵)𝐶=312111631403042=392431326780.

Now, we need to find 𝐴(𝐵𝐶), which means we must first calculate 𝐵𝐶 (a 2×2 matrix). Doing this gives us 𝐵𝐶=56143042=912138.

Then, to find 𝐴(𝐵𝐶), we multiply this on the left by 𝐴. This gives us 𝐴(𝐵𝐶)=032161912138=392431326780.

In conclusion, we see that the matrices we calculated for (𝐴𝐵)𝐶 and 𝐴(𝐵𝐶) are equivalent. Therefore, we can conclude that the associative property holds and the given statement is true.

As we saw in the previous example, matrix associativity appears to hold for three arbitrarily chosen matrices. As a matter of fact, this is a general property that holds for all possible matrices for which the multiplication is valid (although the full proof of this is rather cumbersome and not particularly enlightening, so we will not cover it here).

Property: Associativity of Matrix Multiplication

Let 𝐴 be a matrix of order 𝑚×𝑛, 𝐵 be a matrix of order 𝑛×𝑝, and 𝐶 be a matrix of order 𝑝×𝑞. Then, we have (𝐴𝐵)𝐶=𝐴(𝐵𝐶).

That is to say, matrix multiplication is associative.

While we are in the business of examining properties of matrix multiplication and whether they are equivalent to those of real number multiplication, let us consider yet another useful property.

Recall that for any real numbers 𝑎, 𝑏, and 𝑐, we have 𝑎(𝑏+𝑐)=𝑎𝑏+𝑎𝑐.

This is known as the distributive property, and it provides us with an easy way to expand the parentheses in expressions. As a matter of fact, we have already seen that this property holds for the scalar multiplication of matrices. Recall that the scalar multiplication of matrices can be defined as follows.

Definition: Scalar Multiplication

For a matrix of order 𝑚×𝑛 defined by 𝐴=𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎, the scalar multiple of 𝐴 by a constant 𝑘 is found by multiplying each entry of 𝐴 by 𝑘, or, in other words, 𝑘𝐴=𝑘𝑎𝑘𝑎𝑘𝑎𝑘𝑎𝑘𝑎𝑘𝑎𝑘𝑎𝑘𝑎𝑘𝑎.

As we have seen, the property of distributivity holds for scalar multiplication in the same way as it does for real numbers: namely, given a scalar 𝑎 and two matrices 𝐵 and 𝐶 of the same order, we have 𝑎(𝐵+𝐶)=𝑎𝐵+𝑎𝐶.

As for full matrix multiplication, we can confirm that is in indeed the case that the distributive property still holds, leading to the following result.

Property: Distributivity of Matrix Multiplication

Let 𝐴 be a matrix of order 𝑚×𝑛 and 𝐵 and 𝐶 be matrices of order 𝑛×𝑝. Then, we have 𝐴(𝐵+𝐶)=𝐴𝐵+𝐴𝐶.

In other words, matrix multiplication is distributive with respect to matrix addition.

It is important to be aware of the orders of the matrices given in the above property, since both the addition 𝐵+𝐶 and the multiplications 𝐴𝐵, 𝐴𝐶, and 𝐴(𝐵+𝐶) need to be well defined.

Note that much like the associative property, a concrete proof of this is more time consuming than it is interesting, since it is just a case of proving it entry by entry using the definitions of matrix multiplication and addition.

Let us consider an example where we can see the application of the distributive property of matrices.

Example 6: Investigating the Distributive Property of Matrix Multiplication over Addition

Suppose that 𝐴=1342, 𝐵=2011, and 𝐶=0130.

  1. Find 𝐴𝐵.
  2. Find 𝐴𝐶.
  3. Find 𝐴(2𝐵+7𝐶).
  4. Express 𝐴(2𝐵+7𝐶) in terms of 𝐴𝐵 and 𝐴𝐶.

Answer

Part 1

To begin with, we have been asked to calculate 𝐴𝐵, which we can do using matrix multiplication. 𝐴 and 𝐵 are 2×2 matrices, so their product will also be a 2×2 matrix. To demonstrate the calculation of the bottom-left entry, we have

where we have computed (4)2+21=6. Repeating this for the remaining entries, we get 𝐴𝐵=13422011=1362.

Part 2

We can calculate 𝐴𝐶 in much the same way as we did 𝐴𝐵. 𝐴𝐶 will also be a 2×2 matrix since 𝐴 and 𝐶 are both 2×2 matrices. Performing the matrix multiplication, we get 𝐴𝐶=13420130=9164.

Part 3

For the next part, we have been asked to find 𝐴(2𝐵+7𝐶). To calculate this directly, we must first find the scalar multiples of 𝐵 and 𝐶, namely 2𝐵 and 7𝐶. We do this by multiplying each entry of the matrices by the corresponding scalar. Thus, we have 2𝐵=220117𝐶=70130=4022,=07210.

The next step is to add the matrices using matrix addition. We do this by adding the entries in the same positions together. This gives us 2𝐵+7𝐶=4022+07210=47192.

Finally, to find 𝐴(2𝐵+7𝐶), we multiply this matrix by 𝐴. Just as before, we will get a 2×2 matrix since we are taking the product of two 2×2 matrices. We get 𝐴(2𝐵+7𝐶)=134247192=61135432.

Part 4

For the final part, we must express 𝐴(2𝐵+7𝐶) in terms of 𝐴𝐵 and 𝐴𝐶. The easiest way to do this is to use the distributive property of matrix multiplication. That is, for matrices 𝐴, 𝑋, and 𝑌 of the appropriate order, we have 𝐴(𝑋+𝑌)=𝐴𝑋+𝐴𝑌.

In this case, if we substitute in 𝑋=2𝐵 and 𝑌=7𝐶, we find that 𝐴(2𝐵+7𝐶)=𝐴(2𝐵)+𝐴(7𝐶)=2𝐴𝐵+7𝐴𝐶.

Thus, we have expressed 𝐴(2𝐵+7𝐶) in terms of 𝐴𝐵 and 𝐴𝐶. Nevertheless, we may want to verify that our solution is correct and that the laws of distributivity hold. Since we have already calculated 𝐴(2𝐵+7𝐶), 𝐴𝐵, and 𝐴𝐶 in previous parts, it should be fairly easy to do this. 2𝐴𝐵 and 7𝐴𝐶 can be found using scalar multiplication of 𝐴𝐵 and 𝐴𝐶; that is, 2𝐴𝐵=213627𝐴𝐶=79164=26124,=6374228.

Finally, we can add these two matrices together using matrix addition, to get 2𝐴𝐵+7𝐴𝐶=26124+6374228=61135432.

Since this corresponds to the matrix 𝐴(2𝐵+7𝐶) that we calculated in the previous part, we can confirm that our solution is indeed correct: 𝐴(2𝐵+7𝐶)=2𝐴𝐵+7𝐴𝐶.

For the final part of this explainer, we will consider how the matrix transpose interacts with matrix multiplication. Let us begin by recalling the definition.

Definition: The Transpose of a Matrix

Suppose that 𝐴 is a matrix of order 𝑚×𝑛. The transpose of matrix 𝐴 is an operator that flips a matrix over its diagonal. In other words, it switches the row and column indices of a matrix. This operation produces another matrix of order 𝑛×𝑚 denoted by 𝐴.

If 𝑎 are the entries of matrix 𝐴 with 𝑖=1,,𝑚 and 𝑗=1,,𝑛, then 𝑎 are the entries of 𝐴 and it takes the form 𝐴=𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎.

For example, consider the 2×3 matrix 𝐴=568129.

The transpose of this matrix 𝐴 is the following 3×2 matrix: 𝐴=516289.

As it turns out, matrix multiplication and matrix transposition have an interesting property when combined, which we will consider in the theorem below.

Property: Matrix Multiplication and the Transpose

Suppose that 𝐴 is a matrix of order 𝑚×𝑛 and 𝐵 is a matrix of order 𝑛×𝑝, ensuring that the matrix product 𝐴𝐵 is well defined. The transpose of 𝐴 and 𝐵 are matrices 𝐴 and 𝐵 of orders 𝑛×𝑚 and 𝑝×𝑛, respectively, so their product in the opposite direction 𝐵𝐴 is also well defined.

Matrix multiplication combined with the transpose satisfies the following property: (𝐴𝐵)=𝐵𝐴.

Once again, we will not include the full proof of this since it just involves using the definitions of multiplication and transposition on an entry-by-entry basis.

In the final example, we will demonstrate this transpose property of matrix multiplication for a given product.

Example 7: The Properties of Multiplication and Transpose of a Matrix

Given that 𝐵𝐴=8475, what is 𝐴𝐵?

Answer

In this example, we want to determine the product of the transpose of two matrices, given the information about their product.

Recall that the transpose of an 𝑚×𝑛 matrix switches the rows and columns to produce another matrix of order 𝑛×𝑚. Matrix multiplication combined with the transpose satisfies the property (𝐵𝐴)=𝐴𝐵.

Therefore, in order to calculate the product 𝐴𝐵, we simply need to take the transpose of 𝐵𝐴 by using this property.

Hence, we have 𝐴𝐵=(𝐵𝐴)=8475=8745.

Let us finish by recapping the properties of matrix multiplication that we have learned over the course of this explainer.

Key Points

  • Matrix multiplication is in general not commutative; that is, 𝐴𝐵𝐵𝐴.
  • If 𝐴 and 𝐵 are both diagonal matrices of the same order, then 𝐴𝐵=𝐵𝐴.
  • An identity matrix 𝐼 is a diagonal matrix with 1 for every diagonal entry. Identity matrices (up to order 4) take the forms shown below: 𝐼=1001,𝐼=100010001,𝐼=1000010000100001.
  • If 𝐼 is an identity matrix and 𝐴 is a square matrix of the same order, then 𝐴𝐼=𝐼𝐴=𝐴.
  • Matrix multiplication is associative; that is, for valid matrices 𝐴, 𝐵, and 𝐶, we have (𝐴𝐵)𝐶=𝐴(𝐵𝐶).
  • Matrix multiplication is distributive over addition, so for valid matrices 𝐴, 𝐵, and 𝐶, we have 𝐴(𝐵+𝐶)=𝐴𝐵+𝐴𝐶.
  • For any valid matrix product 𝐴𝐵, the matrix transpose satisfies the following property: (𝐴𝐵)=𝐵𝐴.

Join Nagwa Classes

Attend live sessions on Nagwa Classes to boost your learning with guidance and advice from an expert teacher!

  • Interactive Sessions
  • Chat & Messaging
  • Realistic Exam Questions

Nagwa uses cookies to ensure you get the best experience on our website. Learn more about our Privacy Policy