    public class Main {		
		public static class Term {
			private final int coefficient;
			private final int exponent;
		
			public Term (final int coefficient,final int exponent) {
				this.coefficient = coefficient;
				this.exponent = exponent;			
			}
		
			@Override
			public String toString() {
				final String sign = getSign (coefficient);
				final String number = getNumber (coefficient);
				final String exponentStr = getExponentStr (coefficient, exponent);
				
				return String.format ("%s%s%s",sign, number, exponentStr);
			}
		
			private String getExponentStr(final int coefficient, final int exponent) {
				if (coefficient == 0 || exponent == 0) {
					return "";
				}
				if (exponent == 1) {
					return "x";
				}
				return "x^" + exponent;
			}
		
			private String getNumber(final int value) {
				final int absValue = Math.abs(value);
				
				return absValue == 1 ? "" : Integer.toString (absValue);
			}
		
			private String getSign(final int value) {
				return value < 0 ? "-" : "";
			}
		}
	
		public static void main(String[] args) throws Exception {
			System.out.println(new Term (0, 2));
			System.out.println(new Term (1, 2));
			System.out.println(new Term (-1, 2));
			System.out.println(new Term (5, 1));
			System.out.println(new Term (5, 0));
		}
	}
