Implement the image smoothing utilizing the convolution with Gaussian masks with C++. You must utilize 2 input images which are pgm files. First, implement 2D Gaussian convolution utilizing the 1D Gaussian masks. Codes for reading and writing the pgm images as well as for producing the Gaussian mask are available within the attachment to this assignment. For comparison purposes, also implement the 2D Gaussian convolution using 2D Gaussian masks.