- #include<iostream> 
- using namespace std; 
-   
- //write your code here 
- class Matrix{ 
-   private: 
-     int arr[3][3]; 
-   public: 
-     friend istream& operator >> (istream& in,Matrix &matrix); 
-     friend ostream& operator << (ostream& out,const Matrix& matrix); 
-     friend Matrix operator + (Matrix &a,Matrix &b); 
-     void setArr(int i,int j,int data){ 
-         arr[i][j] = data; 
-     } 
-     int getArr(int i,int j) const{ 
-     //                      ^^^^^ // Added const 
-         return arr[i][j]; 
-     } 
-     Matrix& operator = (const Matrix &b); 
-     //                  ^^^^^ // Added const 
- }; 
- istream& operator >> (istream& in,Matrix &matrix) 
- { 
-     for(int i=0;i<3;i++) 
-         for(int j=0;j<3;j++) 
-             in >> matrix.arr[i][j]; 
-     return in; 
- } 
- ostream& operator << (ostream& out,const Matrix &matrix){ 
-     for(int i=0;i<3;i++) 
-     { 
-         for(int j=0;j<3;j++) 
-             out << matrix.arr[i][j] << " "; 
-         out << endl; 
-     }        
-     return out; 
- } 
- Matrix operator + (Matrix &a,Matrix &b){ 
-     Matrix temp; 
-     for(int i=0;i<3;i++) 
-         for(int j=0;j<3;j++) 
-             temp.setArr(i,j,(a.getArr(i,j)+b.getArr(i,j))); 
-     return temp; 
-   
- } 
- Matrix& Matrix::operator = (const Matrix &b){ 
- //                          ^^^^^ // Added const 
-     for(int i=0;i<3;i++) 
-         for(int j=0;j<3;j++) 
-             arr[i][j] = b.getArr(i,j); 
-     return *this; 
- } 
- int main() 
- { 
-     Matrix a1,a2,a3,a4; 
-     cin >> a1; 
-     cin >> a2; 
-     a4 = a2; 
-     a3 = (a1+a4); // No errors now 
-     cout << a1 << endl; 
-     cout << a2 << endl; 
-     cout << a3 << endl; 
-     return 0; 
- } 
				I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovL3dyaXRlIHlvdXIgY29kZSBoZXJlCmNsYXNzIE1hdHJpeHsKICBwcml2YXRlOgogICAgaW50IGFyclszXVszXTsKICBwdWJsaWM6CiAgICBmcmllbmQgaXN0cmVhbSYgb3BlcmF0b3IgPj4gKGlzdHJlYW0mIGluLE1hdHJpeCAmbWF0cml4KTsKICAgIGZyaWVuZCBvc3RyZWFtJiBvcGVyYXRvciA8PCAob3N0cmVhbSYgb3V0LGNvbnN0IE1hdHJpeCYgbWF0cml4KTsKICAgIGZyaWVuZCBNYXRyaXggb3BlcmF0b3IgKyAoTWF0cml4ICZhLE1hdHJpeCAmYik7CiAgICB2b2lkIHNldEFycihpbnQgaSxpbnQgaixpbnQgZGF0YSl7CiAgICAgICAgYXJyW2ldW2pdID0gZGF0YTsKICAgIH0KICAgIGludCBnZXRBcnIoaW50IGksaW50IGopIGNvbnN0ewogICAgLy8gICAgICAgICAgICAgICAgICAgICAgXl5eXl4gLy8gQWRkZWQgY29uc3QKICAgICAgICByZXR1cm4gYXJyW2ldW2pdOwogICAgfQogICAgTWF0cml4JiBvcGVyYXRvciA9IChjb25zdCBNYXRyaXggJmIpOwogICAgLy8gICAgICAgICAgICAgICAgICBeXl5eXiAvLyBBZGRlZCBjb25zdAp9Owppc3RyZWFtJiBvcGVyYXRvciA+PiAoaXN0cmVhbSYgaW4sTWF0cml4ICZtYXRyaXgpCnsKICAgIGZvcihpbnQgaT0wO2k8MztpKyspCiAgICAgICAgZm9yKGludCBqPTA7ajwzO2orKykKICAgICAgICAgICAgaW4gPj4gbWF0cml4LmFycltpXVtqXTsKICAgIHJldHVybiBpbjsKfQpvc3RyZWFtJiBvcGVyYXRvciA8PCAob3N0cmVhbSYgb3V0LGNvbnN0IE1hdHJpeCAmbWF0cml4KXsKICAgIGZvcihpbnQgaT0wO2k8MztpKyspCiAgICB7CiAgICAgICAgZm9yKGludCBqPTA7ajwzO2orKykKICAgICAgICAgICAgb3V0IDw8IG1hdHJpeC5hcnJbaV1bal0gPDwgIiAiOwogICAgICAgIG91dCA8PCBlbmRsOwogICAgfSAgICAgICAKICAgIHJldHVybiBvdXQ7Cn0KTWF0cml4IG9wZXJhdG9yICsgKE1hdHJpeCAmYSxNYXRyaXggJmIpewogICAgTWF0cml4IHRlbXA7CiAgICBmb3IoaW50IGk9MDtpPDM7aSsrKQogICAgICAgIGZvcihpbnQgaj0wO2o8MztqKyspCiAgICAgICAgICAgIHRlbXAuc2V0QXJyKGksaiwoYS5nZXRBcnIoaSxqKStiLmdldEFycihpLGopKSk7CiAgICByZXR1cm4gdGVtcDsKCn0KTWF0cml4JiBNYXRyaXg6Om9wZXJhdG9yID0gKGNvbnN0IE1hdHJpeCAmYil7Ci8vICAgICAgICAgICAgICAgICAgICAgICAgICBeXl5eXiAvLyBBZGRlZCBjb25zdAogICAgZm9yKGludCBpPTA7aTwzO2krKykKICAgICAgICBmb3IoaW50IGo9MDtqPDM7aisrKQogICAgICAgICAgICBhcnJbaV1bal0gPSBiLmdldEFycihpLGopOwogICAgcmV0dXJuICp0aGlzOwp9CmludCBtYWluKCkKewogICAgTWF0cml4IGExLGEyLGEzLGE0OwogICAgY2luID4+IGExOwogICAgY2luID4+IGEyOwogICAgYTQgPSBhMjsKICAgIGEzID0gKGExK2E0KTsgLy8gTm8gZXJyb3JzIG5vdwogICAgY291dCA8PCBhMSA8PCBlbmRsOwogICAgY291dCA8PCBhMiA8PCBlbmRsOwogICAgY291dCA8PCBhMyA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=