C++ using vector, easy solution
\nclass FrontMiddleBackQueue {\npublic:\n    vector<int> q;\n    FrontMiddleBackQueue() {}\n    \n    void pushFront(int val) {\n        q.insert(q.begin(), val
```\nclass FrontMiddleBackQueue {\npublic:\n    vector<int> q;\n    FrontMiddleBackQueue() {}\n    \n    void pushFront(int val) {\n        q.insert(q.begin(), val);\n    }\n    \n    void pushMiddle(int val) {\n        int middle;\n        middle = q.size() / 2;\n        q.insert(q.begin() + middle, val);\n    }\n    \n    void pushBack(int val) {\n        q.push_back(val);\n    }\n    \n    int popFront() {\n        if(q.size() == 0)\n            return -1;\n        int temp = q[0];\n        q.erase(q.begin());\n        return temp;\n    }\n    \n    int popMiddle() {\n        if(q.size() == 0)\n            return -1;\n        \n\t\tint middle;\n        if(q.size() % 2 == 0)\n            middle = (q.size() / 2) - 1;\n        else\n            middle = q.size() / 2;\n        \n\t\tint temp = q[middle];\n        q.erase(q.begin() + middle);\n        return temp;\n    }\n    \n    int popBack() {\n        if(q.size() == 0)\n            return -1;\n        else{\n            int temp = q.back();\n            q.pop_back();\n            return temp;\n        }\n    }\n};\n```
['C']